Профессиональные справочные системы для специалистов
05.04.2019
Россия восемь лет подряд удерживает лидерство на студенческих чемпионатах мира по программированию

В Португалии завершился финал самого масштабного и престижного мирового чемпионата по программированию – ICPC. Российские студенты-программисты продолжили многолетнюю беспроигрышную серию на турнире.

 

В восьмой раз подряд кубок мира уезжает в Россию, и вновь – к победителю прошлого года, команде МГУ, впервые в истории ICPC ставшей чемпионом в одном и том же составе. Еще двум российским вузам, ВШЭ и МФТИ, достались бронзовые медали. Кроме того, МФТИ получил право принимать финал чемпионата мира в 2020 году.  

 

Чемпионат мира по спортивному программированию, проводившийся в 43-й раз, поставил очередной рекорд по количеству участников: в сезоне 2018-2019 гг. за путевку в финал ICPC на региональных отборочных турнирах соревновались 52709 лучших молодых программистов из 3233 университетов 110 стран. Для сравнения: в Летних Олимпийских Играх в Рио на всех этапах участвовали всего 11544 спортсмена. 

 

В финале крупнейшего мирового первенства встретились 135 команд. Россию представляли 10 команд из пяти городов: Москвы, Санкт-Петербурга, Архангельска, Екатеринбурга и Саратова. 

Наряду с кубком чемпионов, на ICPC разыгрывается по четыре медали каждого достоинства  – их получают команды, занявшие первые 12 мест турнирной таблицы. Медали высшей пробы, помимо чемпиона – МГУ, завоевали Массачусетский университет технологий (2 место), Университет Токио (3 место) и Университет Варшавы (4 место). Серебряные награды получили Тайваньский национальный университет (5 место), Университет Вроцлава (6 место), Сеульский университет (7 место) и Политехнический университет  имени Ким Чхэка (Северная Корея) (7 место). «Бронзу» взяли Технологический университет имени Шарифа (Иран) (9 место), Московский физико-технический институт (10 место), Высшая школа экономики (11 место) и Китайский университет Гонконга (12 место).

 

«Мы внимательно следили за выступлениями ребят. Но вместе с волнением, присутствовала уверенность в их успехе, ведь российские команды столько лет стабильно удерживают лидерство в чемпионате. Такие результаты подтверждают растущее качество российского образования, нашу национальную черту выступить единым целым, силу и волю к победе. От всей души поздравляю команду-чемпиона, наших бронзовых призеров и все команды, представившие нашу страну, и очень рад, что следующий чемпионат мы примем в Москве, в МФТИ», - прокомментировал результаты чемпионата Министр науки и высшего образования РФ Михаил Котюков.

 

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

 

«Неожиданно то, что на этот раз ни одна медаль не досталась университетам материкового Китая – это Пекинский университет, Шанхайский транспортный университет и Университет Синьхуа, которые обычно входят в число фаворитов. Еще один сюрприз преподнесла Северная Корея, завоевавшая свою первую в истории медаль чемпионата. Команда Массачусетского технологического университета впервые за три года вернула США на верхнюю ступеньку пьедестала. Ряд традиционно сильных команд из России в этот раз выступили слабее, чем прежде, что можно объяснить сменой поколений. Надеюсь, это временное явление. Между тем, среди россиян появился новый медалист – команда ВШЭ, впервые получившая награду», – говорит Андрей Станкевич, тренер команд Университета ИТМО, уже много лет сохраняющего мировой рекорд по количеству побед на ICPC (семь чемпионских кубков). 

 

Финалистам предстояло решить 11 задач за пять часов (решение задачи представляет собой программу, написанную на одном из пяти языков: Java, C, C ++, Python или Kotlin). В распоряжении команды из трех человек – всего один компьютер, поэтому, помимо логики и способности работать в жестких временных рамках, конкурсанты должны проявить навыки взаимодействия в команде. Выигрывают те, кто верно решил наибольшее количество заданий и показал лучшее время, также учитывается количество попыток решения задачи. 

 

За ходом борьбы можно было следить в режиме реального времени по онлайн-таблице. Однако за час до окончания соревнований турнирная таблица была «заморожена» – команды видели только свои результаты и то, какие задачи пытались решить соперники. Лишь на церемонии награждения таблицу «разморозили» и стали известны имена победителей.

По словам Андрея Станкевича, уровень сложности заданий в финале этого года повысился, по сравнению с прошлым: «Первые семь задач были относительно доступны, начиная с восьмой – уже гораздо сложнее. Только 20 команд из 135 одолели семь и более задач, и лишь шестерым поддались восемь задач и более», –  отмечает тренер. Чемпионы, команда МГУ, решили 10 задач из 11. Все задания доступны по ссылке. 

 

Сводные результаты российских команд в финале чемпионата мира ICPC 2019: 

• МГУ – 1 место 

• МФТИ – 10 место 

• Высшая школа экономики (Москва) – 11 место 

• Университет ИТМО – 17 место 

• Саратовский государственный университет – 31 место

• Уральский федеральный университет – 34 место

• Санкт-Петербургский государственный университет – 54 место

• Высшая школа экономики (Санкт-Петербург) – 68 место

• Северный (Арктический) федеральный университет – 102 место

• Московский авиационный институт – 122 место

 

В 2020 году финал ICPC впервые с 2014 года пройдет в России – чемпионат примет МФТИ. 

 

Для справки: 

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

 

Российские программисты участвуют в чемпионате мира с 1993 года. Уже в 1996-м российские студенты оказались в финале, а в 1998-м появились первые призовые места. Университет ИТМО с 1996 года выступает организатором финала ICPC в Северной Евразии – самого сильного регионального полуфинала ICPC. Команды из этого региона, а именно, из России, неизменно завоевывают кубок чемпионата с 2012 года. С 2000 года россияне становились чемпионами ICPC 14 раз, из них семь побед – на счету у Университета ИТМО, четыре – у СПбГУ, две – у МГУ и одна – у Саратовского государственного университета. Университет ИТМО с семью кубками уже много лет держит абсолютный мировой рекорд по количеству чемпионских титулов за всю более чем 40-летнюю историю соревнований (с 1977 г.); на втором месте в мире – СПбГУ с четырьмя. У ближайших зарубежных соперников, американского Стэнфорда и Шанхайского транспортного университета, – всего по три победы.

 

Условия чемпионата год от года остаются практически неизменными. Последнее крупное нововведение было в 2017 году: в число языков программирования, разрешенных к использованию на ICPC, был включен Kotlin, созданный российскими специалистами из компании JetBrains под руководством выпускников Университета ИТМО и признанный одним из самых перспективных языков программирования в мире. Это стало еще одним важным достижением российских разработчиков на международном уровне. 

 

Чтобы попасть в финал чемпионата мира ICPC, команды должны пройти отбор в своем вузе, а затем региональный тур. Так, в финале ICPC по региону Северная Евразия (Россия, СНГ, страны Балтии), проходившем в начале декабря 2018 года, участвовали более 300 команд. По итогам регионального полуфинала были отобраны 16 команд, в том числе, 10 российских.

 

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

 

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

 

За пять часов программисты должны решить от 8 до 12 алгоритмических задач. Для решения некоторых из них достаточно лишь аккуратности и внимательности. Другие требуют углубленного знания различных алгоритмов. Решение задачи представляет собой программу, написанную на одном из пяти языков программирования, разрешенных к использованию на ICPC: Java, C, C ++, Python или Kotlin. 

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

 

За каждую решенную задачу начисляется штрафное время (время, ушедшее на решение задачи с начала тура). Если решение оказывается неверным, команда может исправить ошибку и вновь сделать отправку, однако за каждую проваленную попытку начисляется 20 штрафных баллов (при этом, если задача в итоге не решена, штраф не будет начислен). Побеждает та команда, которая справилась с максимальным количеством задач и заработала меньше штрафного времени. 

 

Победители ICPC получают медали чемпионата мира и денежные призы. Командам, занявшим с первое по четвертое места, вручаются золотые медали, с пятого по восьмое – серебряные, а с девятого по двенадцатое – бронзовые. Обладатели первого места получают чемпионский кубок.