41-я по счету Олимпиада ACM ICPC собрала рекордное число участников – 46 381 студент из 2 948 университетов 103 стран, сообщает пресс-служба ИТМО.
Это в 4 раза больше, чем на традиционных Олимпийских играх – так, в Летней Олимпиаде в Рио участвовали 11 544 спортсмена. В финале главного мирового первенства студентов-программистов (проходившего, кстати, на настоящей спортивной арене) соревновались 133 команды, из них 13 представляли Россию: три команды из Москвы, три из Санкт-Петербурга и по одной из Екатеринбурга, Новосибирска, Перми, Петрозаводска, Саратова, Самары и Томска. Честь Университета ИТМО защищали студенты кафедры компьютерных технологий Иван Белоногов (4 курс бакалавриата), Илья Збань (4 курс бакалавриата) и Владимир Смыкалов (1 курс магистратуры). Готовил команду тренер-рекордсмен Андрей Станкевич, которому вуз обязан всеми своими чемпионскими кубками. В 2016 году Станкевич получил престижную награду ACM ICPC Senior Coach Award, которую вручают тренерам, чьи подопечные 15 или более лет выходят в финал конкурса.
В главном поединке ACM ICPC разгорелась нешуточная борьба – за час до окончания соревнований, когда турнирная таблица была заморожена*, лидировал Университет ИТМО, однако до последнего оставалось загадкой, кто победит. Студенты ИТМО справились с 10 из 12 задач – столько же решили еще четыре команды, но в итоге петербургский вуз показал лучшее время, что и принесло ему седьмой по счету кубок мира. Так Университет ИТМО продлил беспроигрышную серию российских команд на ACM ICPC – уже шестой год подряд заветный трофей достается петербуржцам. Кроме того, вуз утвердился на позиции абсолютного рекордсмена по количеству чемпионских титулов ACM ICPC: на втором месте СПбГУ с четырьмя кубками, а у ближайших зарубежных соперников – американского Стэнфорда и китайского университета Джао Тонг – по три победы.
Еще три российских вуза стали призерами турнира. 12 лучшим командам-финалистам вручаются медали чемпионата – по четыре каждого достоинства. Золото, помимо Университета ИТМО, досталось Варшавскому университету, Сеульскому национальному университету и СПбГУ. Серебряные медали взяли российский МФТИ и три китайских вуза – Университет Синьхуа, Пекинский университет и Университет Фудань. Бронзу завоевали Университет KAIST (Южная Корея), Уральский федеральный университет, Королевский технологический институт – KTH (Швеция) и Токийский университет. С полной таблицей результатов можно ознакомиться на сайте чемпионата.
"Все команды, вошедшие в ТОП-12, не раз назывались в списках фаворитов – больших сюрпризов не было. По сравнению с прошлым годом, мощный рывок показали азиатские вузы: в прошлом году им досталось всего две медали, а сейчас – целых семь. Однако в каждом регионе много сильных команд, и конкуренция все обостряется", – комментирует наставник команды Университета ИТМО Андрей Станкевич.
"Соревнование прошло удивительно гладко, – делится впечатлениями Иван Белоногов. – В некоторых задачах мы интуитивно положились на факты, которые не могли доказать полностью, и чутье нас не подвело. Нам удалось сдать 10 задач фактически за четыре часа, и это дало хороший запас уверенности. Но только в самом конце, когда мы сдали десятую задачу, я подумал: "Окей, видимо, получится взять золото!""
"Рядом с нами сидела команда СПбГУ – иногда мы смотрели, сколько у них сдано задач, что у них происходит. Но в целом все время получалось сконцентрироваться на своих задачах", – рассказывает Владимир Смыкалов. "Как только закончился контест, мы подошли к командам из Варшавы и Сеула и уговорили их рассказать, сколько задач они решили. У всех оказалось по десять, но у нас было лучшее время", – добавляет Илья Збань.
"Важно вовремя отказаться от той задачи, в которой придуманное решение окажется неверным. Понять, когда команда успевает исправить ошибку, а когда лучше оставить попытки и переключиться на другое задание", – поясняет Андрей Станкевич. Последний час соревнований, признался тренер, был для него не менее волнующим, чем для его подопечных: "После того, как турнирная таблица замораживается, никаких способов показать тренеру, сдана ли задача, у ребят нет, но в этот раз, видя изображение с экрана их компьютера в ходе трансляции, я заметил, что после отправки последней задачи, G, они быстро переключились на страницу с результатами, и подумал: значит, все хорошо, сдали – это была не та задача, от которой стоило бы отказаться при неправильном ответе".
В ACM ICPC участвуют команды по три человека; в их распоряжении всего один компьютер – поэтому, помимо логики и умения работать в жестких временных рамках, конкурсанты должны проявить навыки командной игры и суметь грамотно распределить роли. Финальный поединок длится 5 часов. Побеждает команда, которая правильно решит наибольшее количество задач за наименьшее время. Каждое задание включает описание некой выдуманной ситуации (легенду), примеры тестов и формальные ограничения. Чтобы решить задачу, участникам нужно "перевести" условия на язык математики, затем разработать алгоритм решения и написать код. Отправленное судьям решение проходит проверки; за неудачные попытки командам начисляется штрафное время.
Команда Университета ИТМО готовилась к финалу чемпионата с октября прошлого года, тренируясь в среднем по пятнадцать часов в неделю. Ребята участвовали в региональных отборочных этапах и тренировочных сборах, решали задачи олимпиад прошлых лет. "Мы так много тренировались вместе, что все процессы в команде были отлажены практически идеально. Каждый писал свои задачи (некоторые мы делим между собой по типу), и всё получилось", – рассказывает Илья Збань.
Чемпионы ACM ICPC 2017 получили премию в размере 15 000 долларов США. Команды-медалисты также не остались без денежного вознаграждения.
Тысячи болельщиков по всему земному шару следили за ходом решающей битвы ACM ICPC по онлайн-трансляции, за организацию которой в этом году, как и ранее, отвечала техническая команда Университета ИТМО. По напряжению и накалу эмоций "прямой эфир" с Олимпиады по программированию мог поспорить с трансляциями крупнейших спортивных турниров.
Видеостриминг с финала шел на Youtube, twitch (крупнейшей видеоплатформе для геймеров) и в ВК (новшество 2017 года). Вещание впервые сопровождалось комментарием на четырех языках (английский, русский, китайский и арабский).
Зрители могли видеть как планы зала, где проходил турнир, так и картинку с вебкамер на компьютерах участников, скринкаст с экранов компьютеров, ход тестирования "посылок" (так называют решение задачи, отправленное на проверку) и вердикт судей. В прямом эфире шли интервью с экспертами и запись разборов заданий.
То, какая из команд будет показана на "втором экране" в каждый момент времени, определялось автоматическим голосованием. Система фиксировала хэштеги с названиями команд в Twitter и ставила участников в очередь на трансляцию согласно количеству набранных ими твитов.
За ходом соревнования следили десять аналитиков – они в режиме реального времени наблюдали, какие задачи решают команды-лидеры, какие языки программирования выбирают участники, давали оценку происходящему и публиковали интересные новости.
Трансляция доступна в записи на сайте ICPCLive.
Следующий финал всемирной студенческой олимпиады по программированию пройдет в Пекине.