Что такое ICPC?
ICPC (International Collegiate Programming Contest) – это международный чемпионат по алгоритмическому программированию, на котором ежегодно состязаются лучшие умы планеты. Настоящие Олимпийские игры для студентов и аспирантов, чьи команды соревнуются в скорости, креативности и инновационности решения поставленных задач.
Миссия чемпионата – создать возможности для общения между студентами разных университетов и привлечь внимание научных кругов и IT-индустрии к новому поколению профессионалов в области программирования.
Ежегодно в отборочных турах участвуют более 50 000 студентов-программистов из более 3000 университетов 115 стран, и только лучшие из них доходят до финала. Участники соревнований получают предложения о трудоустройстве от лидеров в технологии или становятся создателями собственных успешных стартапов.
История
Чемпионат вырос из локального студенческого соревнования по программированию, которое состоялось в Техасском университете в 1970 году. Идея быстро набрала популярность среди вузов США и Канады, и с 1977 года чемпионат стали проводить ежегодно. В 1989 году событие вышло на глобальный уровень: сегодня в чемпионате ICPC состязаются студенты из более чем сотни стран.
Ежегодно соревнование собирает больше участников, чем Олимпийские игры, – в 2017 году в чемпионате ICPC приняли участие 46 381 человек из 103 стран, в то время как в летней Олимпиаде в Рио-де-Жанейро на всех этапах участвовали 11 544 спортсмена.
Россия участвует в чемпионате с 1995 года. За это время российские студенты завоевали 33 золотые медали и продолжают непрерывную череду побед с 2012 года. В прошлом году чемпионами планеты по программированию стали студенты МГУ имени М. В. Ломоносова. Их команда заняла первое место в финале чемпионата ICPC в Порту (Португалия), впервые в истории выиграв в финале два раза подряд с одинаковым составом участников. Бронзовые медали завоевали команды студентов МФТИ и НИУ ВШЭ.
Финал чемпионата мира ICPC уже проходил в России дважды: в 2013 году – в Санкт-Петербурге, а в 2014-м – в Екатеринбурге. В 2020 году Москва впервые примет решающий турнир крупнейшего мирового чемпионата по программированию.
Правила чемпионата
В состязании участвуют университетские команды из трех студентов, прошедших не более 8 семестров очного обучения в областях науки, техники, инженерии и математики.
В основе всех задач лежат реальные проблемы, такие как оптимизация расписаний метрополитена, моделирование управления воздушным движением, оптимизация размещения ограждений, отслеживание движений роботов, составление гоночных трасс, моделирование сбора багажа в аэропорту, оценка запасов нефти и газа и другие.
Участники, прочитав сценарий, должны точно определить основную существующую проблему и разработать алгоритмы ее решения. За неверную попытку начисляется штрафное время. Побеждает команда, которая быстрее остальных решит наибольшее количество задач.
Такой формат соревнований считается одним из наиболее удачных и сложных: от участников требуется не только правильно решить задачи и в совершенстве знать алгоритмы, но также грамотно распределять роли в команде.
Официальные языки программирования в финале чемпионата мира ICPC 2020: C/C++, Kotlin, Java и Python.
Отборочные туры
Отбор на финальные соревнования проходит по многоступенчатой схеме: все университеты мира разбиты по территориальному признаку на регионы, где в течение года проводятся отборочные турниры. Университеты, в свою очередь, проводят внутренние соревнования и олимпиады, чтобы отобрать лучшие команды, которые представят их на региональном этапе мирового первенства.
Команды, занявшие первые места в региональных соревнованиях, отправляются на финал чемпионата мира ICPC. На этапе отбора один университет может быть представлен несколькими командами, но на финал от каждого университета может отправиться только одна команда.
В этом году в ICPC 2020 в Москве участвуют 135 команд.
Определение победителя
Команда-победитель определяется по числу решенных задач. При одинаковом количестве решенных задач побеждает команда, потратившая меньше времени.
Окончательное решение выносит судейская комиссия. Команды, занявшие в финале первые четыре места, получают золотые медали. Места с пятого по восьмое награждаются серебряными медалями, а с девятого по двенадцатое – бронзовыми. Команда, занявшая первое место, объявляется чемпионом и получает Кубок чемпионов мира.
Полный свод правил чемпионата ICPC 2020 можно найти на официальном сайте https://icpc.baylor.edu/worldfinals/rules