Чемпионат по спортивному программированию International Collegiate Programming Contest проводится ежегодно c 1977 года под эгидой Ассоциации вычислительной техники (ACM, штаб-квартира в Нью-Йорке). Спонсором соревнования является компания IBM.

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

Россия и некоторые другие страны бывшего Советского союза, согласно регламенту конкурса, входят в Северо-Восточный Европейский регион. Команды из РФ участвуют в чемпионате ACM ICPC с 1993 года. За это время они неоднократно показывали высокие результаты, десять раз завоевывая заветный кубок. При этом шесть раз чемпионский титул выигрывали студенты Университета ИТМО, что является абсолютным рекордом соревнований.

Финал чемпионата по программированию ACM ICPC. Источник: icpcnews.com
Финал чемпионата по программированию ACM ICPC. Источник: icpcnews.com

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

«В этом году в команде все трое ребят достаточно универсальны — одинаково отлично пишут и решают задачи по программированию. С каждой командой, а особенно с той, которая проходит в финал, проводятся частые тренировки. Именно в формате ACM ICPC студенты начали тренироваться, по крайней мере, с октября, когда в нашем регионе проходили отборочные туры», — прокомментировала тьютор кафедры компьютерных технологий Университета ИТМО Лидия Перовская.

Тренером сборной Университета ИТМО выступил доцент кафедры компьютерных технологий, кандидат технических наук Андрей Станкевич, который подготовил не одну «звездную» команду программистов. В этом году он получит престижную награду ACM ICPC Senior Coach Award за то, что в течение 15 лет его подопечные проходят в финал конкурса. Вместе с ним эту награду получает представитель Висконсинского университета в Мадисоне (США) Дитер ван Мелькебер.

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

Финал чемпионата по программированию ACM ICPC. Источник: icpcnews.com
Финал чемпионата по программированию ACM ICPC. Источник: icpcnews.com

В этом году среди команд очень большая конкуренция, добавила Лидия Перовская. В числе сильнейших сборных, кроме студентов Университета ИТМО, эксперты выделяют команды Массачусетского технологического института (MIT), Уральского федерального университета, Санкт-Петербургского государственного университета и другие. Только из восточно-европейского полуфинала прошли шесть команд, которые претендуют на одну из двенадцати медалей, которые вручают на ACM ICPC. Тьютор Университета ИТМО подчеркнула, что выделить конкурентные преимущества той или иной студенческой сборной очень сложно, так что болельщики могут рассчитывать на сюрпризы.

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

«Всё проходит в отличной дружеской обстановке, мы знакомы со многими командами по прошлым соревнованиям и тренировкам. В основном общаемся с московскими и петербургскими ребятами. Свободное от обязательных мероприятий время мы, как правило, проводим на пляже. Коротко о том, как проходит финал для нашей команды, мы рассказываем в нашем инстаграме», — делится участник команды Университета ИТМО Адам Бардашевич.

Накануне заключительного соревнования, 18 мая, команды проходят своеобразную «репетицию» финала, в которой также могут участвовать тренеры. А уже 19 мая команды будут готовиться к ключевому событию ACM ICPC, которое начнется в 5:30 утра по московскому времени. Посмотреть онлайн-трансляцию события можно будет по ссылке. Отметим, что значительную часть команды ICPCLive, которая обеспечивает трансляцию, составляют сотрудники Университета ИТМО.

Финал чемпионата по программированию ACM ICPC. Источник: icpcnews.com
Финал чемпионата по программированию ACM ICPC. Источник: icpcnews.com

С каждым годом задания ACM ICPC становятся сложнее — финалисты 2016 года тренируются на задачах прошлых лет и приезжают подготовленными как никто из их предшественников.

«Задачи состоят из легенды, в которой описывается персонаж или какая-то выдуманная ситуация. Решение задачи начинается с выделения математической формулировки: тогда на то, чтобы рассказать условие партнеру по команде, уйдет всего десять секунд. В зависимости от типа задачи я обсуждаю её с Адамом или Вовой, затем мы рассматриваем ее вместе, формулируем алгоритм решения, а дальше задача может быть передана на реализацию третьему участнику. Спортивное программирование отлично тренирует в области алгоритмов и структур данных, поэтому, например, мне было легко пройти собеседование на стажировку в Google. Во время самой стажировки, впрочем, эти навыки не были так необходимы», — сказал Антон Ковшаров.

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