В Порту пройдет финал Международной студенческой олимпиады по программированию — ICPC 2019

Сегодня — 4 апреля — в 13 часов по Москве начнется финал Международной студенческой олимпиады по программированию (ICPC), в котором примут участие 10 российских команд. Их представляют университеты из пяти городов: Москвы, Санкт-Петербурга, Екатеринбурга, Саратова и Архангельска. Сильнейшие зарубежные соперники — Стэнфорд, Шанхайский транспортный университет и MIT.

Финал ICPC 2019

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


Немного фактов


jp-up0ungvqhgilt4elbl1laney.png

  • В 2019 году состязания проходят уже в 43-й раз, на этот раз в городе Порту.
  • В региональных отборочных этапах ICPC 2019 участвовало 52 709 студентов-программистов из 110 стран и 3233 университетов. Для сравнения: на летних Олимпийских играх в Рио на всех этапах соревновались 11 544 спортсмена.
  • Из регионального тура по Северной Евразии вышли 16 команд, десять из которых — из России.
  • Российские команды в финале ICPC 2019 представляют 10 университетов из шести городов:
    1. Московский физико-технический университет,
    2. Московский государственный университет,
    3. Университет ИТМО (Санкт-Петербург),
    4. Санкт-Петербургский государственный университет,
    5. Высшая школа экономики (Москва, Санкт-Петербург),
    6. Московский авиационный институт,
    7. Северный (Арктический) федеральный университет (Архангельск),
    8. Саратовский государственный университет,
    9. Уральский федеральный университет (Екатеринбург).


Правила соревнований


Чтобы попасть на финальные состязания, команды должны сначала пройти отбор в своем вузе, а затем региональный тур (региональный полуфинал). В отборочном туре по России и СНГ участвовали более 300 команд. По итогам полуфинала по лучшим результатам были отобраны 16 команд из Северной Евразии.

В одной команде может быть не больше трех студентов не старше 25 лет. К участию в чемпионате не допускаются те, кто дважды участвовал в мировом финале. За пять часов программисты должны решить от 8 до 12 алгоритмических задач, условия которых написаны на английском языке.

Команды пишут решения на Java, C, C ++, Python и Kotlin и посылают их на тестирующий сервер.

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

Особенность задач в том, что их условия приближены к тем, что могут встретиться программистам-практикам в работе. На одну команду дается один компьютер без доступа к интернету или другой внешней сети. Ребята должны показать навыки командной работы, которые требуются при разработке реального программного продукта в любой IT-компании. Помимо логики и умения работать под давлением, участники соревнований должны проявить навыки командной игры и правильного распределения ролей. Как отмечают организаторы, для того, чтобы решить некоторые задачи, достаточно лишь аккуратности и внимательности. Для других же заданий требуется углубленное знание различных алгоритмов.

Задачи проверяются автоматически по тестам, которые заранее составляются жюри, проверка решений идет в реальном времени. Учитывается полнота и скорость выполнения задания, а также количество попыток, которое сделала команда при решении той или иной задачи.

Чемпионы ICPC получают кубок Чемпионата мира и солидную денежную премию — 15 000 долларов США. Остальные команды-призеры также не уезжают без материального вознаграждения. Команды, занявшие первые четыре места, получат золотые медали и по 7 500 долларов. C пятого по восьмое место — серебряные медали и 6 000 долларов. А те участники, которые заканчивают соревнования на девятом — двенадцатом месте, становятся обладателями бронзовых медалей и 3 000 долларов.

© Habrahabr.ru