ICPC (International Collegiate Programming Contest) — крупнейший и самый престижный в мире чемпионат по спортивному программированию. Соревнование проводится уже более 40 лет. При этом количество участников турнира и его география продолжает расти с каждым годом. Например, в сезоне 2018-2019 в отборочных турнирах ICPC соревновались более 50 тыс. лучших студентов-программистов из 3233 университетов, представляющих 110 стран.

Чтобы попасть в финал ICPC, команды проходят многоступенчатый отбор на региональных этапах: по правилам контеста все университеты мира разбиты по территориальному признаку на регионы, в которых проводятся полуфиналы. Наиболее крупные регионы также разбиты на подрегионы, которые имеют свои четвертьфиналы.

С 29 ноября по 1 декабря состоялся полуфинал чемпионата ICPC — финальное соревнование региона Северная Евразия (Россия, страны СНГ и Балтии). Турнир проходил одновременно на четырех площадках — в Петербурге, Барнауле, Тбилиси и Алматы.

Всего в финале соревнований приняли участие 310 университетских команд. Россию представляли 172 команды, Казахстан и Грузию – по 31 команде, Узбекистан и Азербайджан – по 16 команд, 15 команд приехали на финал от Киргизии, 12 представили Белоруссию, 7 – Армению, а Литву и Латвию – по 3 и 2 команды соответственно.

Полуфинал чемпионата ICPC
Полуфинал чемпионата ICPC

Правила олимпиады

Согласно правилам соревнований, в одной команде может быть не больше трех студентов не старше 25 лет. К участию в чемпионате не допускаются студенты, дважды участвовавшие в финальной стадии соревнований.

В течение пяти часов им предстоит решить от восьми до тринадцати алгоритмических задач, которые могут потенциально встретиться профессиональным программистам в работе. Решением считается программа, написанная на одном из четырех языков программирования: С++, Java, Python и Kotlin.

Задачи проверяются автоматически по тестам, которые заранее составляются жюри, проверка решений идет в реальном времени. Учитывается полнота и скорость выполнения задания, а также количество попыток, которое сделала команда при решении той или иной задачи. Так, за каждую решенную задачу начисляется штрафное время (время, ушедшее на решение задачи с начала тура). За каждую неверную попытку сдать задачу команда также получает штраф в 20 баллов.

Полуфинал чемпионата ICPC
Полуфинал чемпионата ICPC

Отличительная черта соревнований еще и в том, что на одну команду дается лишь один компьютер без доступа к интернету или другой внешней сети. Поэтому участникам необходимо выстроить эффективную командную работу, продемонстрировав навыки, которые также требуются при разработке реального программного продукта в любой IT-компании.

Полуфинал в Петербурге

В этом году финал региона Северная Евразия состоялся на новой площадке: впервые участников соревнований принимал мультимедийный центр в парке «Россия – Моя история». За кубок финальных соревнований Северной Евразии NERC и путевку в финал ICPC в Петербурге боролись 139 студенческих команд. Среди участников были студенты из России, Белоруссии, Латвии и Литвы.

В распоряжении участников было 12 задач, которые необходимо было решить за пять часов. Как и в финале ICPC, задачи имеют разный уровень сложности.

«В этом году задачи, которые решали участники, можно охарактеризовать как менее технические. То есть, условно, надо было писать меньше кода, а больше — предлагать идеи. Это в целом тенденция полуфиналов, но в этом году она, пожалуй, выражена еще более сильно, — рассказывает Нияз Нигматуллин, член жюри соревнований, тьютор факультета информационных технологий и программирования Университета ИТМО и двукратный чемпион международной олимпиады по программированию ICPC (в 2012 и 2013 году). — В целом мы пытаемся подбирать задачи на разные темы. Задачи, которые участники турнира решают в финале ICPC, также меняются год от года, поэтому команды должны быть готовы к разным вариантам».

Полуфинал чемпионата ICPC
Полуфинал чемпионата ICPC

Также все три дня на площадке соревнований проходили лекции и мастер-классы представителей ведущих технологических компаний, среди которых Яндекс, JetBrains, Huawei, Deutsche Bank, Devexperts, Мегафон и Сбербанк.

Как подчеркивает генеральный директор Devexperts Станислав Столяр, участие в соревнованиях такого рода — отличный шанс для талантливых программистов построить карьеру в крупнейших компаниях.

«Вы классные программисты, но победят не все. Есть один фактор, который всех вас объединяет: никто из вас никогда в жизни не останется без работы. Важно и то, что вы здесь находите друзей на всю жизнь, цените эту дружбу и помните о школе, о тех, кто дал вам путевку в жизнь — тренеров, учителей и наставников», — отметил он. 

А Павел Белов, старший менеджер по инновациям компании Мегафон, признался, что он фанат чемпионата мира по спортивному программированию.

«Приятно, что есть вид спорта, где Россия выигрывает каждый год. Делайте так, чтобы Россия и дальше побеждала и не оставляйте шансов никому», — сказал он.

Результаты

Победители финала Северной Евразии ICPC, команда СПбГУ
Победители финала Северной Евразии ICPC, команда СПбГУ

Абсолютным победителем финала Северной Евразии стала команда СПбГУ: Никита Быков, Семен Петров и Дмитрий Беличенко решили 10 задач, обогнав всех соперников по времени. Золотыми медалистами стали команда Нижегородского государственного университета, решившая 10 задач, а также команды МФТИ и Университета ИТМО (состав: Дмитрий Саютин, Арсений Кириллов, Николай Будин) с 9 решенными задачами.

Отметим, что всего Университет ИТМО на финале Северной Евразии представили пять команд. Команда ИТМО 1, получившая «золото» по итогам соревнований, в таком составе тренируется с весны прошлого года. И, как отмечает Андрей Станкевич, тренер команды, подготовивший не одно поколение чемпионов ICPC, за это время участники уже показали значительные успехи.

«Кроме того, к команде тренеров присоединился многократный чемпион международных соревнований по программированию Геннадий Короткевич. Мы привлекли его к работе, и большое спасибо, что он согласился. Его опыт участия в соревнованиях оказался очень полезен, — говорит он. — В том числе благодаря такой поддержке ребятам за последнее время удалось показать серьезные результаты. Будем продолжать работу и, если такая динамика роста сохранится, надеюсь, поборемся в финале за медали».

Команда Университета ИТМО
Команда Университета ИТМО

Полный список университетов, чьи команды поедут на финальный этап ICPC-2020:

  • Санкт-Петербургский государственный университет;
  • Нижегородский государственный университет;
  • Московский физико-технический институт (МФТИ);
  • Университет ИТМО;
  • Университет Иннополис;
  • Высшая школа экономики;
  • Белорусский государственный университет;
  • Латвийский университет;
  • Московский государственный университет;
  • Высшая школа экономики (Санкт-Петербургское отделение);
  • Саратовский государственный университет;
  • Белорусский национальный технический университет;
  • Казанский федеральный университет;
  • Ереванский государственный университет;
  • Белорусский государственный университет радио и электроники.

Победители финала Северной Евразии получили подарки от компании Huawei, которая является золотым спонсором ICPC NERC.

«Мои поздравления всем студентам и университетам, соревнующимся в ICPC в Северной Евразии. Отдельное спасибо Университету ИТМО, который также является домом представительства ICPC NERC, за то, что он проводит и координирует это выдающееся соревнование уже более 25 лет. Отдельное спасибо компании Huawei за спонсорство ICPC NERC и JetBrains за их глобальную поддержку.​ Успехи команд, соревнующихся в Северной Евразии (NERC), на высочайшем мировом уровне. С нетерпением ждем 16 команд из Северной Евразии среди других 119 команд на следующем этапе  чемпионате мира ICPC 2020, который пройдет в июне в Москве, на базе МФТИ, при спонсорской поддержке компании Huawei», — подчеркнул, выступая на церемонии закрытия соревнований, Билл Паучер, исполнительный директор ICPC.

Билл Паучер
Билл Паучер

Прогнозы на финал

Сезон только начался, поэтому уверенно говорить о фаворитах финала ICPC 2020 пока рано. Впереди победителей региональных этапов еще ждут тренировочные сборы, где им предстоит сразиться с сильнейшими соперниками из других регионов. При этом, как отмечает Андрей Станкевич, как и в прошлом году, в финале ICPC 2020 стоит ждать неожиданности.

Например, традиционно сильные команды из Китая второй сезон подряд показывают внушительные результаты на региональных этапах и во время тренировок. В этом году, судя по трансляции, которая шла параллельно с финалом Северной Евразии, китайским участникам уже удалось сдать все задачи почти за час до конца соревнований. Однако несмотря на столь же серьезный старт в прошлом сезоне, в финале ICPC-2019 китайским командам в итоге не удалось побороться за первые места, приводит пример Андрей Станкевич.

Финал ВКОШП

Также 30 ноября в Петербурге определились сильнейшие школьные команды по спортивному программированию — победители Всероссийской командной олимпиады школьников по программированию (ВКОШП).

Финал ВКОШП
Финал ВКОШП

География соревнований давно вышла за пределы России. Так, в этом году во ВКОШП приняли участие 45 команд из Казахстана, 18 – из Украины, 12 – из Белоруссии, 9 – из Грузии, 8 – из Таджикистана, 7 команд – из Армении, а также 4 команды из Киргизии и 2 от Азербайджана. От России в олимпиаде участвовала 161 команда из 100 школ. Соревнования проходили в пяти городах: Санкт-Петербург и Барнаул (Россия), Алматы (Казахстан), Тбилиси (Грузия), Кременчуг (Украина).

Победителями олимпиады стала сборная команда Екатеринбурга Специализированного учебно-научного центра (СУНЦ) УРФУ и Гимназии №9 (состав: Иван Лахтин, Виктор Михайлов и Алиса Гладченко). Они единственные из всех участников решили 10 задач турнира. Тренеры команды – Нина Гейн, Светлана Сандакова и Екатерина Парамонова.

Второе место завоевали ученики школы №199 Тбилиси (Грузия) Николоз Биркадзе, Теймураз Толорая, Арчил Басадзишвили. Тренеры команды – Заза Гамезардашвили и Гурам Котолашвили. Московские школьники Егор Лифарь, Семен Савкин, Александр Шеховцов в составе сборной команды СУНЦ МГУ и Школы №57 заняли третье место. Тренеры команды – Григорий Резников и Елена Андреева.  Обе команды решили по 9 задач.

Победители ВКОШП, сборная команда Екатеринбурга
Победители ВКОШП, сборная команда Екатеринбурга

Четвертое место и золотые медали завоевали школьники из Санкт-Петербурга: сборная команда Президентского физико-математического лицея №239 и Юношеской Математической Школы (Сергей Харгелия, Иван Волков, Даниил Павленко).

Как отмечает Андрей Станкевич, финал ВКОШП преподнес немало неожиданностей.

«На этом финале олимпиады было очень много сюрпризов. Огромное количество фаворитов оказалось в сложной ситуации: они не смогли справиться то ли с нервами, то ли с задачами, то ли с командной работой. В результате команда из Екатеринбурга, в составе которой было два бронзовых призера ВКОШП прошлого года, не светившаяся на каких-то личных соревнованиях и других мероприятиях, практически с самого начала вышла в лидеры и выиграла с отрывом в одну задачу. Особенно важно отметить, что в составе команды есть девочка – Алиса Гладченко. Всегда приятно, когда в IT приходит больше девочек, и будем надеяться, позитивный пример, который подала Алиса, станет знаком всем девушкам, кто сомневается, стоит ли идти в программирование», — отметил он.