Ежегодно самый крупный и престижный мировой турнир по спортивному программированию расширяет географию и увеличивает количество участников: в сезоне 2018-2019 за путевку в финал ICPC на региональных отборочных турнирах соревновались 52 709 лучших студентов-программистов из 3233 университетов, представляющих 110 стран. В финале выступили 135 команд, в том числе 10 из них представляли российские вузы из пяти городов: МГУ, МФТИ и МАИ из Москвы, ВШЭ (московское и санкт-петербургское отделения), Университета ИТМО и СПбГУ из Петербурга, УрФУ (Екатеринбург), СГУ (Саратов) и САФУ (Архангельск). Состязания прошли в 43 раз, в этом году чемпионат принимал Университет Порту.

ICPC-2019 в Университете Порту. Источник: icpcnews.com
ICPC-2019 в Университете Порту. Источник: icpcnews.com

С 2012 года по 2017 год кубок мира доставался двум петербургским вузам — Университету ИТМО (четыре победы за последние шесть лет) и СПбГУ (две победы за последний шесть лет). Прошлогодний турнир открыл еще одну российскую «звезду» турнира — команду МГУ им. Ломоносова, которая ранее ни разу не получала чемпионский титул, но неоднократно брала «золото» чемпионата (пять раз были на втором месте).

В этом году борьба за кубок стала по-настоящему глобальной: среди фаворитов оказались команды Массачусетского технологического института (MIT), Московского государственного университета (МГУ) и Университета Токио, которые лидировали на всех сборах. Во второй группе фаворитов также назывались представители Университета Варшавы, Московского физико-технического института (МФТИ) и Нанкинского университета.

ICPC-2019 в Университете Порту. Источник: icpcnews.com
ICPC-2019 в Университете Порту. Источник: icpcnews.com

Первую задачу чемпионата решила команда Университета Варшавы, которая в самом начале контеста вырвалась на первое место и сохраняла первую строчку практически до заморозки таблицы. Действующий чемпион, команда МГУ, с первых минут пробилась в тройку, а затем переместилась на второе место. В последний час контеста основная борьба за чемпионский кубок развернулась между МГУ, Университетом Варшавы, MIT и Университетом Токио. В итоге чемпионский титул этого года сумели защитить программисты из России. Студенты успешно решили 10 задач из 11.

Команду МГУ, как и в прошлом году представляли Михаил Ипатов, Владислав Макеев и Григорий Резников. Как отметила тренер команды Елена Андреева, залог успеха команды заключается в том, что все участники специализируются на разных областях и, более того, представляют разные факультеты. Команда впервые в истории чемпионата выиграла кубок дважды одним и тем же составом.

Команда МГУ. Источник: icpcnews.com
Команда МГУ. Источник: icpcnews.com

Помимо кубка чемпионов, на ICPC разыгрывается по четыре комплекта медалей каждого достоинства: золотые, серебряные и бронзовые — ими награждаются первые 12 команд. На второй строчке турнирной таблицы расположилась команда MIT c девятью решенными задачами, на третьей — Университет Токио (девять решенных задач), на четвертой — Университет Варшавы (восемь решенных задач).

«Результаты этого года в целом соответствуют прогнозам. Объективно самой сильной была команда МГУ, а команда MIT второй в рейтинге. Однако примечательно, что список призеров давно не был столь глобальным: все четыре золотых медалиста являются лидерами разных регионов: они представляют Северную Евразию, Северную Америку, Азиатско-Тихоокеанский регион и Европу», – прокомментировал Роман Елизаров, секретарь международного оргкомитета ICPC, председатель жюри финала ICPC в регионе Северная Евразия, тьютор факультета информационных технологий и программирования Университета ИТМО.

Одной из главных сенсаций финала контеста стала команда из Северной Кореи, которая в этом году вошла в число медалистов. Участникам из Политехнического университета имени Ким Чхэка (KimChaek University of Technology) удалось получить «серебро» чемпионата. Медалистами среди российских участников стали команды Высшей школы экономики (Москва) и МФТИ. Обе получили бронзовые медали.

Команда Университета ИТМО. Источник: icpcnews.com
Команда Университета ИТМО. Источник: icpcnews.com

Команда Университета ИТМО, которая решила семь задач и показала 17 результат, приехала в Порту в совершенно новом составе: вуз на мировой арене представили студенты факультета информационных технологий и программирования Станислав Наумов (3 курс бакалавриата), Роман Коробков (1 курс бакалавриата) и Илья Подуременных (2 курс бакалавриата). Главным тренером команды не первый год становится доцент факультета информационных технологий и программирования, кандидат технических наук Андрей Станкевич. Тренер подготовил не одно поколение чемпионов по спортивному программированию: в течение более чем 15 лет его подопечные проходили в финал конкурса.

С таблицей результатов можно познакомиться здесь. Условия задач доступны по ссылке.

International Collegiate Programming Contest (ICPC) — крупнейший и самый престижный в мире чемпионат по спортивному программированию. Соревнование проводится ежегодно с 1977 года. До 2017 года турнир проходил под эгидой Ассоциации вычислительной техники (ACM), с 2017 года – под эгидой Фонда ICPC. Долгое время в чемпионате соревновались исключительно команды университетов из США и Канады; в дальнейшем к участию стали приглашать студентов из других стран.

ICPC-2019 в Университете Порту. Источник: icpcnews.com
ICPC-2019 в Университете Порту. Источник: icpcnews.com

В финал ICPC попадают команды, прошедшие многоступенчатый отбор на региональных этапах. Так, полуфинал международной олимпиады по программированию, где соревновались более 100 студенческих команд из Европейской части России, Урала, Беларуси и Прибалтики, состоялся и в Университете ИТМО.

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

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

Чемпионский кубок. Источник: icpcnews.com
Чемпионский кубок. Источник: icpcnews.com

Задачи проверяются автоматически по тестам, которые заранее составляются жюри, проверка решений идет в реальном времени. Учитывается полнота и скорость выполнения задания, а также количество попыток, которое сделала команда при решении той или иной задачи.

Добавим, что команды из России участвуют в ICPC с 1993 года. Российские участники впервые оказались в финале в 1996 году, а в 1998-м появились первые призовые места. За время своего участия в чемпионате команды из России четырнадцать раз завоевывали чемпионский титул, из них семь побед принесли студенты Университета ИТМО, что является абсолютным рекордом за всю более чем 40-летнюю историю соревнований – вдвое больше, чем у ближайших зарубежных соперников, в числе которых Стэнфорд, Шанхайский транспортный университет, MIT и другие сильнейшие вузы планеты.