Спортивное программирование
Спортивное программирование — интеллектуальный вид спорта.
Участники соревнования придумывают алгоритм для решения предложенных им задач, при этом важно уложиться в установленное ограничение по времени и памяти.
Задачи составляются т. н. «композиторами» задач — людьми, разбирающимся в алгоритмах и умеющими закладывать в задачи красивые идеи.
Зачастую воспринимается как хобби, но может быть и основным занятием.
Решения олимпиадных задач пишутся на C++ как на достаточно быстром языке программирования, также популярными являются Java и Kotlin.
Спортивное программирование требует логического мышления и хороших познаний в области алгоритмов и структур данных (встречаются задачи на деревья, строки, динамическое программирование, метод «разделяй и властвуй» и др.).
Самым престижным соревнованием для школьников считается IOI, для студентов — ICPC. Для взрослых людей также проводятся соревнования, например TopCoder, Google Code Jam, VK Cup, Яндекс. Алгоритм.
Самый титулованный спортивный программист планеты — Геннадий Короткевич.
Рекордсмен по количеству побед на ICPC — Университет ИТМО, команды которого семь раз одерживали победу на соревновании.