Посмотрите данные темы:Длинная арифметика
Динамическое программирование
Теория графов и чисел (криптография)
Рекурсия, перебор
Сортировка и последовательности
Комбинаторика
Простая математика
Геометрия
Целочисленная арифметика
Математическое моделирование
Жадный алгоритм
Структуры данных
Двумерные массивы
Почитайте о них, разберите каждую.
Архив задач и тренировка здесь:acmp.ruacm.timus.ruCodeforces
Это
очень полезные ресурсы (системы проверки), в которые входят очень интересные и трудные задачи, как раз предназначенные для олимпиадного программирования.
Ознакомьтесь здесь:
Олимпиадное программирование для новичков
Набор языков программирования в каждой системе разный. Вот некоторые из них:
Набор яп для тимусаДля acmp.ru
Но для начала почитайте и разберите эти ресурсы/книги про алгоритмы:
algolist.manual.ruКормен Т., Лейзерсон Ч., Ривест Р., Штайн K. - Алг...
Ну и конечно, математика это очень хороший плюс. Программист без математики далеко не уйдет, а будет сайтики ваять.
И последнее, чтобы Вас смотивировать. Николай Дуров (брат того самого Павла), Андрей Лопатин, Anton Maydell и другие создавшие ВК и Telegram стали теми, кем сейчас они являются благодаря олимпиадному программированию.