В конце апреля в Пекине прошёл финал студенческого командного Чемпионата мира по программированию (ICPC) 2018. Победителем стала команда Московского государственного университета имени М.В. Ломоносова в составе Михаила Ипатова, Владислава Макеева и Григория Резникова. Тренер команды — Елена Владимировна Андреева. К этому успеху МГУ шел более двадцати лет, то вплотную приближаясь к заветному титулу, то вновь отдаляясь от него.
Правила соревнований
Для начала кратко опишем правила, по которым проводятся ICPC. Эти правила едины для всех соревнований, начиная с квалификационных раундов и заканчивая финалом чемпионата мира. Соревнуются команды, состоящие из трёх студентов, представляющих один вуз. Длительность соревнования составляет пять часов: за это время команды должны решить как можно больше задач из предложенного набора, включающего от 8 до 13 задач. Условия задач становятся доступны участникам в момент старта соревнований. Решением задачи считается код, написанный на одном из разрешённых на данном соревновании языков программирования. В распоряжение команды выдаётся один компьютер, при этом доступ в Интернет ограничен доступом к проверяющей системе.
Написанная программа посылается в проверяющую систему, где код компилируется и запускается на заранее подготовленном наборе тестов. В случае, если решение на всех тестах укладывается в ограничения по памяти и по времени выполнения и даёт правильный ответ, задача считается решённой, во всех остальных случаях задача считается нерешённой и результатом проверки является тип ошибки на первом тесте, на котором программа отработала неверно.
Если посылка команды по задаче проходит все тесты, соответствующая задача помечается для команды как решённая. Количество задач, решённых командой, увеличивается на 1, а к «штрафному времени» команды прибавляется время от момента начала соревнований до момента посылки, а также по 20 минут за каждую неверную посылку по этой задаче, сделанную перед этим.
Команды упорядочиваются в таблице результатов по числу решённых задач, а при равном количестве решённых задач — по штрафному времени. Первые четыре часа актуальная таблица результатов доступна как участникам, так и зрителям, в последний час таблица «замораживается», то есть каждая команда видит только результаты проверки своих посылок, про остальные команды в таблице помечается, что команда отправила задачу (без указания, была ли эта попытка верной). Окончательные результаты утверждаются жюри и «размораживаются» на церемонии закрытия. В процессе разморозки происходит награждение.
Подведение итогов финала
Команда, занявшая первое место в финале, становится чемпионом мира и награждается кубком. Первые несколько команд по итогам финала объявляются призёрами и получают от организаторов денежные премии.
Все команды, не вошедшие в число призёров и решившие одно и то же количество задач, считаются разделившими одно и то же место. При этом если разделённое место оказывается в нижней половине таблицы, то таким командам вручается только сертификат участника без указания места.
Начиная с сезона
Структура Чемпионата мира
Существующая схема проведения ICPC такова: в начале учебного года формируются команды в соответствии с ограничениями: все члены команды должны к моменту участия в первом соревновании сезона представлять тот же университет, от которого формируется команда, в состав команды не может входить студент, который до этого участвовал в двух финалах или в пяти сезонах Чемпионата (вне зависимости от того, до какой стадии дошла команда, в которой тот участвовал); также действуют ограничения по дате рождения и времени поступления в университет.
Чемпионат начинается осенью, когда студенческие команды, представляющие университеты всего мира, начинают отбор с ранних стадий (1/8 финала, региональные и квалификационные раунды), затем проходят четвертьфиналы, и уже в полуфиналах (проходящих в ноябре-декабре) определяются университеты, которые выходят в финал. При этом в финале один университет может быть представлен только одной командой.
Для российских команд полуфинал — Северо-Восточный Европейский Контест (NEERC) — проводится с 1996 г. в Санкт-Петербурге на базе ИТМО. В этот регион вошли все государства бывшего СССР, кроме Украины и Молдовы, оставшихся в Юго-Восточном Европейском Контесте (SEERC). С момента своего основания NEERC также имеет статус Открытого чемпионата России.
Финал Чемпионата мира обычно проходит во второй половине учебного года или в летние каникулы в различных городах и странах (на базе различных университетов). Пребывание команд на финале оплачивается организаторами, однако расходы на дорогу сюда не включаются. В разные годы финансовую поддержку поездок команд МГУ на финал оказывали Ассоциация СиБОСС и компания «Яндекс».
История ICPC
Впервые соревнования по схеме ACM ICPC прошли в 1977 г. в США; первые лет десять этот турнир был в основном внутренним турниром североамериканских вузов, проводимым под эгидой Ассоциации вычислительной техники (ACM). Правила проведения самих соревнований слегка отличались от описанных выше. Ближе к концу
Чемпионаты мира ACM ICPC
Год
Место проведения
Медали (золото-серебро-бронза)
Число призеров
Чемпион мира
1992
Kansas City (USA)
6
University of Melbourne (Australia)
1993
Indianapolis (USA)
6
Harvard University (USA)
1994
Phoenix (USA)
6
University of Waterloo (Canada)
1995
Nashville (USA)
6
Freiburg University (Germany)
1996
Philadelphia (USA)
6
University of California, Berkley (USA)
1997
San Jose (USA)
10
Harvey Mudd College (USA)
1998
Atlanta (USA)
10
Charles University (Czech Republic)
1999
Eindhoven (Netherlands)
10
University of Waterloo (Canada)
2000
Orlando (USA)
3-3-6
11
St. Petersburg State University (Russia)
2001
Vancouver (Canada)
4-9-15
10
St. Petersburg State University (Russia)
2002
Honolulu (USA)
4-3-3
10
Shanghai JiaoTong University (China)
2003
Beverly Hills (USA)
4-4-4
12
University of Warsaw (Poland)
2004
Prague (Czech Republic)
4-4-4
12
St. Petersburg ITMO University (Russia)
2005
Shanghai (China)
4-4-4
12
Shanghai JiaoTong University (China)
2006
San-Antonio (USA)
4-4-4
12
Saratov State University (Russia)
2007
Tokyo (Japan)
4-4-5
13
University of Warsaw (Poland)
2008
Banff (Canada)
4-4-4
12
St. Petersburg ITMO University (Russia)
2009
Stockholm (Sweden)
4-4-4
13
St. Petersburg ITMO University (Russia)
2010
Harbin (China)
4-5-4
13
Shanghai JiaoTong University (China)
2011
Orlando (USA)
4-4-4
12
Zhejiang University (China)
2012
Warsaw (Poland)
4-4-4
12
St. Petersburg ITMO University (Russia)
2013
St. Petersburg (Russia)
4-4-5
13
St. Petersburg ITMO University (Russia)
2014
Yekaterinburg (Russia)
4-4-4
12
St. Petersburg State University (Russia)
2015
Marrakech (Morocco)
4-4-4
12
St. Petersburg ITMO University (Russia)
2016
Phuket (Thailand)
4-4-5
13
St. Petersburg State University (Russia)
2017
Rapid City (USA)
4-4-4
12
St. Petersburg ITMO University (Russia)
2018
Beijing (China)
4-4-5
13
Moscow State University (Russia)
Первыми же российскими университетами, команды которых вышли в финал Чемпионата мира, были ИТМО и МГУ. Произошло это в сезоне
Команды МГУ и ИТМО решили по четыре задачи и попали в группу команд, разделивших 17 место. Для первого участия университетов в финале результат весьма достойный. Таким образом, для МГУ и ИТМО финал
В декабре 1996 г. прошёл первый полуфинал NEERC. Победителем стала команда ИТМО, вице-чемпионом России — третья команда МГУ, в состав которой входили Дмитрий Васюра, Александр Чернов и Дмитрий Жуков (тренер — Николай Мансуров). Эти команды вышли в финал. А первая команда МГУ, в составе которой были и финалисты прошлого года, в итоге осталась только на четвёртом месте.
Здесь надо отметить, что особенностью подготовки команд в МГУ является наличие двух независимых тренерских групп, представляющих соответственно мехмат и ВМК. Так, в сезоне
Результаты команд МГУ в финалах Чемпионата мира ACM ICPC
Год и результат
Участники и тренер, центр подготовки
1996 —
17-26 местаС. Битюков, О. Голубицкий, А. Лапунов
тренер — Е.В.Панкратьев, мехмат1997 — сертификат участника
Д. Васюра, Д. Жуков, А. Чернов
тренер — Н. Мансуров, ВМК1998 —
17-23 местаО. Голубицкий, А. Голынский, В. Савкин
тренер — Е.В.Панкратьев, мехмат1999 —
18-27 местаД. Васюра, В. Матюхин, А. Пономарёв
тренер — А. Чернов, ВМК2000 —
13-19 местаА. Белеванцев, О. Маликов, А. Хохлов
тренер — О. Майлингова, ВМК2001 — бронзовые медали,
14-28 местаВ. Матюхин, А. Петров, А. Пономарёв
тренер — А. Чернов, ВМК2002 — бронзовые медали
(9-е место)М. Бабенко, Е. Черепанов, С. Чернышев
тренер — Е. Панкратьев, мехмат2003 — золотые медали
(2-е место)М. Бабенко, П. Митричев, Е. Черепанов
тренер — Е. Панкратьев, мехмат2004 — сертификат участника
Р. Пастухов, В. Сурогин, Д. Шулятников
тренер — В. Малышко, ВМК2005 — золотые медали
(2-е место)П. Митричев, П. Наливайко, В. Рычев
тренер — Е. Панкратьев, мехмат2006 — бронзовые медали
(9-е место)И. Попелышев, А. Румянцев, А. Халявин
тренер — Е. Панкратьев, мехмат2007 — бронзовые медали
(10-е место)Е. Куликов, М. Левин, П. Наливайко
тренер — Е. Панкратьев, мехмат2008 — серебряные медали
(5-е место)М. Левин, И. Попелышев, Е. Шавлюгин
тренеры — Е. Панкратьев, А. Панкратьев2009 —
14-19 местаС. Ангелюк, В. Астахов, И. Максименко
тренер — А. Чернов, ВМК2010 — золотые медали
(2-е место)А. Гусаков, И. Корнаков, И. Разенштейн
тренер — А. Панкратьев, мехмат2011 — бронзовые медали
(10-е место)В. Астахов, И. Корнаков, А. Кумок
тренер — А. Панкратьев, мехмат2012 — бронзовые медали
(10-е место)А. Калужин, С. Рогуленко, С. Федоров
тренер — А. Панкратьев, мехмат2013 — бронзовые медали
(10-е место)А. Калужин, С. Рогуленко, С. Федоров
тренер — А. Панкратьев, мехмат2014 — золотые медали
(2-е место)Г. Евстропов, В. Омельяненко, М. Пядеркин
тренер — А. Панкратьев, мехмат2015 — золотые медали
(2-е место)Г. Евстропов, В. Омельяненко, М. Пядеркин
тренер — А. Панкратьев, мехмат2016 —
14-27 местаМ. Ахмедов, Д. Горбунов, А. Шлюнкин
тренер — А. Шестимеров, ВМК2017 —
34-55 местаН. Багров, Д. Купляков, И. Лахтанов
тренер — А. Шестимеров, ВМК2018 — золотые медали
(1-е место)М. Ипатов, В. Макеев, Г. Резников
тренер — Е. Андреева, СУНЦ
В финале 1997 г., проходившем в Сан-Хосе (США), команда СПбГУ заняла восьмое — призовое — место и таким образом, впервые в истории ICPC российская команда стала призёром. Команда МГУ в том году выступила не особенно удачно, оставшись только с сертификатами участника.
В сезоне
По итогам полуфинала 1998 г. первые два места заняли команды СПбГУ, с третьего места в финал 1998 г. вышла команда МГУ в составе Олега Голубицкого, Александра Голынского и Владимира Савкина; тренировал команду Евгений Васильевич Панкратьев. Также в финал вышли команды ИТМО и Уральского ГТУ. В финале команда СПбГУ установила новое достижение для российских команд, уступив только команде Карлова университета из Праги и став вице-чемпионом мира; команда МГУ решила четыре задачи и разделила с другими университетами
В полуфинале сезона
В финал 2000 г., проходивший в Орландо (США), от МГУ с третьего места NEERC вышла команда в составе Александра Хохлова, Андрея Белеванцева и Олега Маликова (тренер — Ольга Майлингова). В финале команда МГУ разделила
В сезоне
В сезоне
В следующем сезоне из команды-финалиста «по возрасту» в соответствии с действовавшими в те годы правилами допуска к соревнованиям ICPC ушёл пятикурсник Сергей Чернышёв, ставший помощником тренера. Его место в команде занял трёхкратный призёр Международной олимпиады школьников по информатике, выпускник московской
Несколькими годами ранее организаторами финала был учреждён специальный приз для тренеров, которые пять и более лет выводили команды в финальную стадию соревнований. В 2003 г. Евгений Васильевич Панкратьев первым из российских тренеров был удостоен этой награды.
В сезоне
Здесь нужно заметить, что к тому времени олимпиадное программирование достигло такого этапа развития, когда многие команды регулярно демонстрировали результаты на уровне мировой элиты и конкуренция между ними была стабильно высока. Поэтому стали крайне востребованы способы объективного сравнения потенциала команд на основе анализа их результатов «в долгосрочной перспективе». Таким инструментом, позволившим адекватно оценивать как собственные силы команды, так и возможности конкурентов, стало появившееся в то время и быстро завоевавшее широкую популярность новое многоэтапное соревнование, в зачёт которого идут результаты, демонстрируемые командами на протяжение всего учебного года.
В сезоне
В первом сезоне в Открытом Кубке участвовали только российские и белорусские команды, среди них 12 команд, прошедшие в финал от NEERC (надо отметить, что за прошедшие с момента основания NEERC годы количество команд во всех четвертьфиналах существенно возросло, в результате чего квота нашего полуфинала в финал постепенно увеличилась с трёх мест в сезоне
К моменту финала 2005 г., который проходил в Шанхае, в Открытом Кубке уверенно лидировали действующие чемпионы мира — команда ИТМО, финалисты из МГУ столь же уверенно шли на втором месте. Поэтому шансы на то, что эти две команды будут вести борьбу за золото — или даже за победу — были весьма существенными.
Во время финала в Шанхае в интернет-кафе на территории МГУ по инициативе Валерия Николаевича Медведева силами компаний «Руссофт» и «Аурига» и организаторами Открытого Кубка проводилась прямая трансляция для болельщиков и журналистов. Видеотрансляции с финала появились через несколько лет, так что комментарии к таблице результатов и презентации команд NEERC были подготовлены силами организаторов. Присутствовавшие на трансляции — несмотря на то, что начиналась она в 4 утра — журналисты ИТ-изданий проявляли большой интерес к происходящему, тем более что в Шанхае лидерство уверенно захватила команда МГУ. Среди предложенных участникам десяти задач семь оценивались как «решаемые» и три как очень сложные; команда МГУ первой справилась со всеми семью «решаемыми» задачами, имея небольшое штрафное время, и у неё оставалось более часа на то, чтобы решить хотя бы одну из оставшихся. Команда ИТМО решила семь задач позднее, но времени на то, чтобы решить восьмую задачу и стать победителем у неё тоже было достаточно. Также семь задач было у команды Waterloo University. Уже после «заморозки» таблицы седьмую задачу сдала команда Shanghai Jiaotong University — и тоже выбрала восьмую задачу для решения. Отметим, что к моменту «заморозки» была сделана только одна успешная попытка по сложным задачам — находящаяся в нижней части таблицы команда Tokyo University сдала задачу D. В случае, если лидеры не решали восьмую задачу, чемпионом становилась команда МГУ, вице-чемпионом — команда ИТМО. Команда МГУ работала над задачей G, команда ИТМО — сразу над двумя задачами A и G (при равенстве числа задач команда МГУ оставалась впереди — задел штрафного времени был слишком велик). А команда Шанхая выбрала для решения «идейную» задачу D, для решения которой надо было знать — или вывести — весьма нетривиальную теорему. И за семь минут до конца команда Shanghai Jiaotong U решила восьмую задачу, вытеснив команду МГУ на второе место, а команду ИТМО на третье. В итоге команда МГУ уже во второй раз получает золотые медали и второе место, правда, при этом — в отличие от финала двухлетней давности — становится чемпионом Европы (так как победитель представляет Азию). Состав «золотой» команды — Пётр Митричев, Владимир Рычёв, Павел Наливайко, тренер — Евгений Васильевич Панкратьев. Для Петра Митричева это был второй финал, так что Пётр завершил выступления в турнирах ICPC с двумя золотыми медалями и двумя вторыми местами в финалах; команда ИТМО в полном составе также завершает выступления в финалах с двумя золотыми медалями и первым и третьим местами.
В сезоне
В сезоне
В сезоне
Перед финалом произошло трагическое событие — погиб тренер и руководитель команд мехмата МГУ Евгений Васильевич Панкратьев, который вывел в финал и эту команду. В Канаду команду повёз его сын — также сотрудник мехмата МГУ. На традиционном собрании тренеров перед финалом результаты российских команд решили посвятить памяти Евгения Васильевича. В Канаде команда МГУ выступила достойно, заняв пятое место и получив серебряные медали; а чемпионом мира стала команда Университета ИТМО. Отметим, что для МГУ это было уже четвёртое призовое место подряд.
В следующем финале, который проходил весной 2009 г. в Стокгольме, команде Московского университета не удалось завоевать медалей: она финишировала в группе команд, разделивших
К началу сезона
В финале, проходившем в феврале 2010 г. в Харбине (Китай), основная борьба за титул развернулась между командами Московского университета и Shanghai Jiaotong University. Китайцы успели сдать седьмую задачу еще до заморозки. На
На следующий год команда, в состав которую, помимо Ильи Корнакова, вошли Аким Кумок и финалист 2009 г. Василий Астахов, стала вице-чемпионом России, однако в финале не смогла полностью продемонстрировать свой потенциал и заняла лишь
После этого в течение двух сезонов
Нельзя не упомянуть яркое достижение представителей Московского университета в полуфинале 2012 г. — все пять команд МГУ попали в десятку сильнейших, которым были вручены дипломы первой степени. Никакой другой российский вуз ни до, ни после этого не смог добиться подобного результата. Это говорит о высочайшей внутренней конкуренции среди команд МГУ.
Сезоны
Особенно драматичным выдался финал 2014 г., проходивший в Екатеринбурге. Чемпионы мира—команда ИТМО во главе с Геннадием Короткевичем пропускала сезон, и фаворитом финала изначально считалась команда СПбГУ. Но и команда Московского университета в течение всего сезона демонстрировала стабильно высокие результаты.
По ходу соревнований москвичам удалось захватить лидерство, и даже в какой-то момент они опережали петербуржцев на две задачи. Все решилось в последний час контеста, в течение которого обе команды довели количество решенных задач до шести (с хорошим временем) и приложили максимум усилий, чтобы сдать седьмую задачу. Ни те, ни другие не жалели попыток, так как казалось маловероятным, что обе команды смогут довести задачи до конца, и на первый план выходило количество решенных задач.
Однако в итоге обеим командам удалось сдать седьмую задачу (МГУ — за 10, а СПбГУ — за 2 (!) минуты до конца соревнований) и чемпион мира определялся по штрафному времени. У москвичей штрафное время оказалось больше на 39 минут (1398 против 1359) и, таким образом, МГУ во второй раз в истории упустил победу на самых последних минутах.
В финале 2015 г. команда МГУ довольно долго пыталась бороться на равных с безоговорочным фаворитом — командой ИТМО, однако ближе к концу контеста петербуржцы ушли в отрыв и одержали победу, как говорится, за явным преимуществом. При этом команда ИТМО решила все предложенные жюри 13 задач, что является поистине феноменальным результатом!
По окончании карьеры участников Глеб Евстропов и Михаил Пядёркин, как и многие другие титулованные финалисты, остались в олимпиадном программировании в качестве тренеров школьных команд. В частности, Глеб Евстропов активно помогал Е.В. Андреевой при подготовке команды МГУ — чемпиона мира 2018 г.
После того как MSU Tapirs закончили свои выступления в ранге двукратных вице-чемпионов мира, лидерство среди команд МГУ перешло к команде Trinity в составе Максима Ахмедова (мехмат), Дмитрия Горбунова, Алексея Шлюнкина с факультета ВМК (тренер Андрей Шестимеров). Однако что-то пошло не так: осенью 2015 г. они без труда прошли в финал, но не смогли завоевать медалей, разделив с другими командами
Заключение
Несмотря на то, что в минувшем сезоне команда МГУ впервые завоевала титул абсолютного чемпиона мира, результаты выступлений команд Московского университета находятся на самом высоком мировом уровне. За все время, пока в финале Чемпионата мира вручаются медали (с
По количеству «золота» МГУ уступает только феноменальному результату университета ИТМО (11 медалей), отстает всего на одну медаль от команды СПбГУ и делит
Также весьма показательно то, что с момента первого выхода в финал в сезоне
Что же касается участников чемпионской команды этого года, все они показывали достойные результаты ещё в школе: Владислав Макеев участвовал в шести Всероссийских олимпиадах по информатике, из них в самой первой — в шестом классе — был в числе призёров, а в следующих пяти — победителей заключительного этапа (что является абсолютным рекордом России), в 10 и 11 классах завоевал золотые медали на Международных олимпиадах школьников по информатике
Об авторах: Антон Евгеньевич Панкратьев — доцент механико-математического факультета МГУ имени М.В. Ломоносова; Олег Богданович Христенко — технический координатор Открытого Кубка имени Е.В. Панкратьева по программированию.