Как готовить себя к олимпиадному программированию?
Посмотрите данные темы:Длинная арифметика
Динамическое программирование
Теория графов
Рекурсия, перебор
Сортировка и последовательности
Комбинаторика
Простая математика
Геометрия
Целочисленная арифметика
Математическое моделирование
Жадный алгоритм
Структуры данных
Двумерные массивы
Почитайте о них, разберите каждую. Месяц - слишком мало для подготовки, но если у Вас школьная олимпиада, то еще ничего.Архив задач и тренировка здесь:acmp.ruacm.timus.ruCodeforces
Это очень полезные ресурсы (системы проверки), в которые входят очень интересные и трудные задачи, как раз предназначенные для олимпиадного программирования.
Ознакомьтесь здесь: Олимпиадное программирование для новичков
Набор языков программирования в каждой системе разный. Вот некоторые из них: Набор яп для тимусаДля acmp.ru
Но для начала почитайте и разберите эти ресурсы/книги про алгоритмы:algolist.manual.ruКормен Т., Лейзерсон Ч., Ривест Р., Штайн K. - Алг...
Ну и конечно, подтяните математику. Без математики далеко не уйдете.
Ответ на Ваш вопрос: для длинной арифметики подошел бы Java.
В свое время было что-то подобное. Только в украинском варианте названия другие - школьная, районная, областная, всеукраинская.
В школе кроме меня программирование фактически никто не знал, на уроках информатики в те года почему-то убрали даже основы какого либо языка. Да и я тогда знал только немного паскаля/delphi. Но лучше варианта не нашлось, так что пошел я (для приличия все задачки в школе все же решил). Спокойно прошел районный этап (было четыре человека, которые тоже непонятно как туда попали - одна девочка ушла через 20 минут). К областному этапу я уже готовился. Особой системы у меня не было - я просто решал задачи на acmp.ru, acm.timus.ru. При необходимости гуглил необходимый алгоритм и старался разобраться в его реализации. Помогал с задачами на одном форуме, иногда и сам спрашивал. В результате за приблизительно 2 месяца такой подготовки я занял второе место) Набрал 69 баллов из 100 (2 задачи решил полностью, 2 частично).  Недавно общался с преподавателем своим - говорит, до сих пор меня вспоминают (типа приехал какой-то паренёк из провинции и отобрал призовое место у местных лицеистов). Но я, чесно говоря, своим результатом не слишком доволен, 2 месяца на подготовку -это мало. Да и готовиться надо было более систематично.
Что бы я точно изменил - писал бы не на паскале:) Сейчас бы я выбрал Java. Недавно вернулся к некоторым задачам на acmp.ru - те задачи, где на паскале надо было изворачиваться, на Java решались элементарно. Например, не пришлось реализовывать длинную арифметику. Кто-то говорил, что часто можно упереться в Time Limit, но, честно говоря, это так себе аргумент - для большинства задач указанного лимита времени для Java с запасом. Небезызвестный Петр Митричев в соревнованиях её использует и уже столько лет показывает результат.
Да, питона у нас в проверяющей системе на олимпиаде не было. Теоретически на нем можно было писать на своем компьютере, его бы потом проверяли вручную. Но без доступа у тестирующей системе таким образом решать задачи никто не решился.