
Логотип ACM ICPC
История
Международный командный чемпионат по программированию уходит своими корнями в соревнование, проводившееся в Техасском университете в 1970. Свой нынешний облик чемпионат принял в 1977 году, когда первый финал был проведен в рамках ежегодной конференции ACM по информатике, и с тех пор проводится ежегодно.
Чемпионат проводится под эгидой ассоциации вычислительной техники (ACM). Начиная с 1989 года, организацией соревнований занимается университет Бэйлора. В разное время спонсорами соревнований становились такие компании, как Apple, AT&T и Microsoft, однако с 1997 года по настоящее время генеральным спонсором является компания IBM.
С 1977 по 1989 в олимпиаде преимущественно участвовали команды вузов из США и Канады. К настоящему моменту олимпиада превратилась во всемирное соревнование: в 2009 году в ней приняло участие 7109 команд из 88 стран, 100 из которых сошлись в борьбе за главный трофей в финальном турнире. Количество команд продолжает расти на 10-20 % в год, так что в будущем соревнования обещают стать ещё представительнее.
Россия и такие страны бывшего СССР, как Азербайджан, Армения, Беларусь, Грузия, Казахстан, Киргизия, Латвия, Литва, Узбекистан, Эстония, входят в Северо-Восточный Европейский регион, ежегодно делегирующий на финальный турнир свои лучшие команды. Квота региона по количеству команд до 2013 года ежегодно увеличивалась: на финал 2011 было отправлено 12 команд, на 2012 — 16 команд, на 2013 — 19 команд, на 2014 — 17 команд.
Правила
Олимпиада — командное соревнование. Каждая команда состоит из трёх студентов. К участию допускаются студенты высших учебных заведений, а также аспиранты первого года обучения. Студенты, дважды участвовавшие в финальной стадии олимпиады, или пятикратно принимавшие участие в региональном отборе, не допускаются к участию. Есть ограничение по возрасту: участники старше 24 лет не допускаются.
Тур олимпиады происходит следующим образом: каждой команде выдаётся компьютер и от восьми до двенадцати задач, условия которых написаны на английском языке, на пять часов. Команды пишут решения на языках программирования C, C++ или Java и посылают их на тестирующий сервер. Во время некоторых региональных туров набор языков может быть изменен. Так, например, при проведении четвертьфинала по северо-восточному региону участникам доступен Паскаль. Программы тестируются на большом количестве различных входных тестов, неизвестных участникам. Если программа выдала неправильный ответ или не уложилась в ограничения по времени или памяти, то пославшая её команда получает об этом сообщение и может послать исправленную версию. Задача считается решённой, если программа выдала правильные ответы на всех тестах. В отличие от других олимпиад, частичные решения не учитываются.
Побеждает команда, решившая правильно наибольшее число задач. Если несколько команд решают одинаковое количество задач, то их положение в рейтинге определяется штрафным временем. Изначально штрафное время каждой команды равно нулю. За каждую правильно сданную задачу к штрафному времени команды прибавляют время, прошедшее с начала соревнования до момента сдачи задачи. Кроме того, если зачтённой попытке предшествовало несколько неудачных попыток сдать ту же задачу, то за каждую из них к штрафному времени прибавляют двадцать минут. За неудачные попытки сдать задачу, которую команде в итоге так и не удалось решить, штрафного времени не начисляется.
От других олимпиад по информатике эта олимпиада отличается повышенным количеством задач, на которые отводится сравнительно небольшое время. Учитывая, что в распоряжении каждой команды находится только один компьютер, навыки эффективной и слаженной командной работы выходят на первый план.
Многие университеты проводят свои олимпиады используя формат ACM ICPC, поскольку данный формат может считаться одним из самых удачных.
Этапы
Олимпиада проводится на нескольких уровнях. Многие университеты проводят внутренние соревнования, чтобы определить своих представителей на региональном уровне. Затем проводятся региональные олимпиады, победители которых отправляются на финальный этап мирового первенства. В региональных соревнованиях один университет может быть представлен несколькими командами, но на финал может отправиться только одна команда от университета.
Победители
Чемпионами мира с 1995 года становились:
Год | Место проведения | Победитель | Состав команды | Тренер |
---|---|---|---|---|
2016 | ![]() |
![]() |
Станислав Ершов, Алексей Гордеев, Игорь Пышкин | Андрей Лопатин |
2015 | ![]() |
![]() |
Геннадий Короткевич, Борис Минаев, Артем Васильев | Андрей Станкевич |
2014 | ![]() |
![]() |
Дмитрий Егоров, Павел Кунявский, Егор Суворов | Андрей Лопатин |
2013 | ![]() |
![]() |
Михаил Кевер, Геннадий Короткевич, Нияз Нигматуллин | Андрей Станкевич |
2012 | ![]() |
![]() |
Евгений Капун, Михаил Кевер, Нияз Нигматуллин | Андрей Станкевич |
2011 | ![]() |
![]() |
Мо Луи (Luyi Mo), Оуян Цзялинь (Jialin Ouyang), У Цзэцзюнь (Zejun Wu) | Ван Цань (Can Wang) |
2010 | ![]() |
![]() |
Цзинь Бинь (Bin Jin), У Чжоцзе (Zhuojie Wu), Чжэн Чжао (Zhao Zheng) | Юй Юн (Yong Yu) |
2009 | ![]() |
![]() |
Владислав Исенбаев, Максим Буздалов, Евгений Капун | Андрей Станкевич |
2008 | ![]() |
![]() |
Дмитрий Абдрашитов, Дмитрий Паращенко, Федор Царев | Андрей Станкевич |
2007 | ![]() |
![]() |
Filip Wolski, Marcin Pilipczuk, Marek Cygan | Jan Madey |
2006 | ![]() |
![]() |
Роман Алексеенков, Игорь Кулькин, Иван Романов | Михаил Мирзаянов |
2005 | ![]() |
![]() |
Дай Вэньюань (Wenyuan Dai), Чжао Шуан (Shuang Zhao), Ян Бохай (Bohai Yang) | Юй Юн (Yong Yu) |
2004 | ![]() |
![]() |
Дмитрий Павлов, Павел Маврин, Сергей Оршанский | Андрей Станкевич |
2003 | ![]() |
![]() |
Tomasz Czajka, Krzysztof Onak, Andrzej Gasienica-Samek | Jan Madey |
2002 | ![]() |
![]() |
Линь Чэньси (Chenxi Lin), Чжоу Цзянь (Jian Zhou), Лу Цзин (Jing Lu) | Юй Юн (Yong Yu) |
2001 | ![]() |
![]() |
Николай Дуров , Андрей Лопатин, Виктор Петров | Дмитрий Ломов |
2000 | ![]() |
![]() |
Николай Дуров, Андрей Лопатин, Олег Етеревский | Наталья Вояковская |
1999 | ![]() |
![]() |
Ondrej Lhotak, Viet-Trung Luu, David Kennedy, Donny Cheung | Gordon Cormack |
1998 | ![]() |
![]() |
Jiri Hajek, Pavel Machek, Martin Mares | Pavel Töpfer |
1997 | ![]() |
![]() |
Brian Carnes, Brian Johnson, Kevin Watkins, Dominic Mazzoni | Robert Keller |
1996 | ![]() |
![]() |
Ben Rudiak-Gould, Amit Sahai, Scott McPeak | Paul Hilfinger |
1995 | ![]() |
![]() |
Matthias Ruhl, Christian Wetzel, Phillip Zembrod |
Journal information