Что такое ICPC?

ICPC (International Collegiate Programming Contest) – это международный чемпионат по алгоритмическому программированию, на котором ежегодно состязаются лучшие умы планеты. Настоящие Олимпийские игры для студентов и аспирантов, чьи команды соревнуются в скорости, креативности и инновационности решения поставленных задач.

Миссия чемпионата – создать возможности для общения между студентами разных университетов и привлечь внимание научных кругов и IT-индустрии к новому поколению профессионалов в области программирования.

Ежегодно в отборочных турах участвуют более 50 000 студентов-программистов из более 3000 университетов 115 стран, и только лучшие из них доходят до финала. Участники соревнований получают предложения о трудоустройстве от лидеров в технологии или становятся создателями собственных успешных стартапов.

Матей Захария
Профессор Stanford University,
сооснователь Databricks.
Золотая медаль
ICPC WF 2005
Адам д’Анджело
Сооснователь Quora,
бывший CTO of Facebook.
Серебряная медаль
ICPC WF 2004
Николай Дуров
Сооснователь VK и Telegram.
Чемпион
ICPC WF 2000
Тони Шей
CEO Zappos,
основатель LinkExchange.
Чемпион
ICPC WF 1993

История

Чемпионат вырос из локального студенческого соревнования по программированию, которое состоялось в Техасском университете в 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