Международная студенческая олимпиада по программированию
Международная студенческая олимпиада по программированию (в английском принято сокращение ICPC, до 2017 — ACM ICPC), называемая также Студенческим командным чемпионатом мира по программированию ICPC — крупнейшая студенческая командная олимпиада по программированию.
История
[править | править код]Студенческий командный чемпионат мира по программированию ICPC уходит своими корнями в соревнование, проводившееся в Техасском университете в 1970. Свой нынешний облик чемпионат принял в 1977 году, когда первый финал был проведён в рамках ежегодной конференции ACM по информатике, и с тех пор проводится ежегодно[1][2].
До 2017 года чемпионат проводился под эгидой ассоциации вычислительной техники (ACM). Начиная с 1989 года, организацией соревнований занимается университет Бэйлора[1]. В разное время спонсорами соревнований становились такие компании, как Apple, AT&T и Microsoft[3], c 1997 по 2017 год генеральным спонсором являлась компания IBM[1][4], начиная с 2018 года глобальным спонсором средств программирования является компания JetBrains[4].
В России одним из основателей студенческих соревнований по программированию являлся Панкратьев Евгений Васильевич[5].
Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Узбекистан составляют Северный Евразийский регион, ежегодно делегирующий на финальный турнир свои лучшие команды. Квота региона по числу команд с 2009 до 2013 года ежегодно увеличивалась: в 2009 году на финал было отправлено 11 команд, в 2010 — 12 команд, в 2011 — 13 команд, в 2012 — 16 команд, в 2013 — 19 команд, в 2014 — 17 команд[6]. Страны Балтии покинули Северо-Восточный Европейский полуфинальный регион: Эстония — в 2018 году[7], Литва и Латвия — в 2020 году[8].
Правила
[править | править код]

Михаил Ипатов, Владислав Макеев, Григорий Резников
Олимпиада — командное соревнование. Каждая команда состоит из трёх студентов. К участию допускаются студенты высших учебных заведений, а также аспиранты первого года обучения. Студенты, дважды участвовавшие в финальной стадии олимпиады, или пятикратно принимавшие участие в региональном отборе, не допускаются к участию. Есть ограничение по возрасту: участники старше 24 лет не допускаются[9].
Тур олимпиады происходит следующим образом: каждой команде выдаётся компьютер и от восьми до двенадцати задач, условия которых написаны на английском языке[10], на пять часов. Команды пишут решения на языках программирования C, C++, Java, Python или Kotlin набирая и компилируя программы, используя Ubuntu 18.04. LTS (2018 год) [источник не указан 1407 дней], и посылают их на тестирующий сервер. Во время некоторых региональных туров набор языков может быть изменён. Так, например, при проведении четвертьфинала по северо-восточному региону участникам доступен Паскаль[10]. Программы тестируются на большом количестве различных входных тестов, неизвестных участникам. Если программа выдала неправильный ответ или не уложилась в ограничения по времени или памяти, то пославшая её команда получает об этом сообщение и может послать исправленную версию. Задача считается решённой, если программа выдала правильные ответы на всех тестах. В отличие от других олимпиад, частичные решения не учитываются.
Побеждает команда, решившая правильно наибольшее число задач. Если несколько команд решают одинаковое количество задач, то их положение в рейтинге определяется штрафным временем. Изначально штрафное время каждой команды равно нулю. За каждую правильно сданную задачу к штрафному времени команды прибавляют время, прошедшее с начала соревнования до момента сдачи задачи. Кроме того, если зачтённой попытке предшествовало несколько неудачных попыток сдать ту же задачу, то за каждую из них к штрафному времени прибавляют двадцать минут. За неудачные попытки сдать задачу, которую команде в итоге так и не удалось решить, штрафного времени не начисляется[11].
От других олимпиад по информатике эта олимпиада отличается повышенным количеством задач, на которые отводится сравнительно небольшое время. Учитывая, что в распоряжении каждой команды находится только один компьютер, навыки эффективной и слаженной командной работы выходят на первый план.
Многие университеты проводят свои олимпиады используя формат ICPC, поскольку данный формат может считаться одним из самых удачных.
Этапы
[править | править код]Олимпиада проводится на нескольких уровнях. Многие университеты проводят внутренние соревнования, чтобы определить своих представителей на региональном уровне. Затем проводятся региональные олимпиады, победители которых отправляются на финальный этап мирового первенства. В региональных соревнованиях один университет может быть представлен несколькими командами, но на финал может отправиться только одна команда от университета.
Победители ICPC
[править | править код]Чемпионами мира с 1977 года становились[12]:
| Год | Место проведения | Победитель | Состав команды | Тренер |
|---|---|---|---|---|
| 2025 | Максим Туревский, Леонид Данилевич, Фёдор Ушаков | Иван Казменко | ||
| 2024 | Ван Вэйчэн (Wang Weicheng), Ван Сянвэнь (Wang Xiangwen), Сю Аньи (Xu Anyi) | Луо Гоцзе (Luo Guojie) | ||
| 2023** | Фёдор Ромашов, Кирилл Кудряшов, Александр Бабин | Михаил Густокашин | ||
| 2022** | Линью Цзян (Lingyu Jiang), Чжипэн Ван (Zhanpeng Wang), Юйсян Луо (Yuxiang Luo) | Цинь цзянь Чжан (Qinjian Zhang) | ||
| 2021* | Джерри Мао (Jerry Mao), Минъян Дэн (Mingyang Deng), Сяо Мао (Xiao Mao) | Се Цзинь (Ce Jin) | ||
| 2020 | Алексей Данилюк, Николай Калинин, Валерия Рябчикова | Алексей Шмелев | ||
| 2019 | Михаил Ипатов, Владислав Макеев, Григорий Резников | Елена Андреева | ||
| 2018 | Михаил Ипатов, Владислав Макеев, Григорий Резников | Елена Андреева | ||
| 2017 | Иван Белоногов, Илья Збань, Владимир Смыкалов | Андрей Станкевич | ||
| 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) | |||
| 1994 | Сейджи Андо (Seiji Ando), Ян Голдберг (Ian Goldberg), Ка-Пин Йи (Ka-Ping Yee) | Джо Эберген (Jo Ebergen) | ||
| 1993 | Деррик Басс (Derrick Bass), Тони Шей, Крейг Сильверстайн (Craig Silverstein) | |||
| 1992 | Эндрю Конвей (Andrew Conway), Крейг Диллон (Craig Dillon), Стивен Симмонс (Stephen Simmons) | |||
| 1991 | Майкл Патрик Фрэнк (Michael Patrick Frank), Шон Куинлан (Sean Quinlan), Дэвид Магерман (David Magerman), Карл Уитти (Carl Witty) | |||
| 1990 | John Gee, Craig McNaughton, Paul Sharp, Bruce Warrington | |||
| 1989 | Seth Goldman, Alex Quilici, Matthew Marzbacher, Scott Turner | |||
| 1988 | Dave Gillespie, Adam Greenblatt, Ron Goodman, Scott Hemphill | |||
| 1987 | Bob Alverson, Tomas Rokicki, Ali Tabibian, Lei Zhu | |||
| 1986 | Steve Burns, Tim Kay, Dave Gillespie, Steve Rabin, Rajiv Gupta | |||
| 1985 | Michael Dixon, Micheal Hewett, Vivek Sarkar, Joseph Weening | |||
| 1984 | Michael Baldwin, Robert Strandh, John Walker, Richard Washington | Joseph O’Rourke | ||
| 1983 | Mark Tuttle, Thane Plambeck, David Leavitt, Paul Petersen | |||
| 1982 | Keith Hall, Patrick Keane, Jennifer Harmon, Terry Talley | Don Gaitros | ||
| 1981 | Кристофер Фройнд (Christopher Freund), Майкл Ричи (Michael Richey), Джеймс Симмонс (James Simmons), Кэтрин Пирон Физелер (Catherine Pyron Fieseler) | |||
| 1980 | Стив Карасек (Steve Karasek), Натан Шредер (Nathan Schroeder), Майк Зайда (Mike Zyda), Дэйв Кэмп (Dave Camp) | |||
| 1979 | Стив Карасек (Steve Karasek), Натан Шредер (Nathan Schroeder), Дэвид Доти (David Doty), Дэйв Кэмп (Dave Camp) | |||
| 1978 | ||||
| 1977 |
* В связи с пандемией COVID-19 соревнование проводилось в ноябре 2022 года.
**Финалы сезонов 2021–2022 и 2022–2023 прошли одновременно в апреле 2024 года.
Примечания
[править | править код]- ↑ 1 2 3 ICPC Fact Sheet (англ.) (8 марта 2019). Архивировано 25 марта 2019 года.
- ↑ CSC '77 Proceedings of the 5th annual ACM computer science conference (англ.) (1977). Дата обращения: 3 декабря 2010.
- ↑ ACM International Collegiate Programming Contest Team Participation Since 1989 (англ.). Дата обращения: 3 декабря 2010. Архивировано 22 августа 2011 года.
- ↑ 1 2 Михаил Мирзаянов. ACM-ICPC Финал 2017: вести с полей. Codeforces (23 мая 2017). Дата обращения: 25 марта 2019. Архивировано 25 марта 2019 года.
- ↑ Скончался Е.В. Панкратьев. Институт систем информатики им. А. П. Ершова СО РАН (24 января 2008). Дата обращения: 11 июля 2024. Архивировано 11 июля 2024 года.
- ↑ World Finalists from Northern Eurasia. Дата обращения: 14 октября 2019. Архивировано 14 октября 2019 года.
- ↑ Ср. результаты отборочного тура за 2017 Архивная копия от 16 августа 2022 на Wayback Machine и 2018 Архивная копия от 16 августа 2022 на Wayback Machine годы: университет Tallinn SU прекратил участие.
- ↑ Ср. результаты отборочного тура за 2020 Архивная копия от 16 августа 2022 на Wayback Machine и 2021 Архивная копия от 28 сентября 2022 на Wayback Machine годы: университеты VU и LU прекратили участие (астериск перед названием команды означает участие вне конкурса).
- ↑ Rules of the 2008 ICPC Regional Contests (англ.) (27 февраля 2008). Дата обращения: 3 декабря 2010. Архивировано 22 августа 2011 года.
- ↑ 1 2 :: ACM ICPC, NEERC, Southern Subregion :: Порядок и правила проведения соревнований. Дата обращения: 18 октября 2011. Архивировано 21 сентября 2011 года.
- ↑ The Rules of the 2009 ACM-ICPC World Finals (англ.) (8 апреля 2008). Дата обращения: 3 декабря 2010. Архивировано 22 августа 2011 года.
- ↑ ICPC World Champion Hall of Fame (англ.). ICPC International Collegiate Programming Contest. Дата обращения: 6 сентября 2023. Архивировано 6 сентября 2023 года.