ПОЛУФИНАЛЬНЫЕ СОРЕВНОВАНИЯ ЧЕМПИОНАТА МИРА ПО ПРОГРАММИРОВАНИЮ 2001-2002 гг.

ПРЕДИСЛОВИЕ

ПОЛУФИНАЛЬНЫЕ СОРЕВНОВАНИЯ ЧЕМПИОНАТА МИРА ПО ПРОГРАММИРОВАНИЮ 2001-2002 гг.

В.Н. Васильев, М.А. Казаков, Г.А. Корнеев, В.Г. Парфенов, А.С. Станкевич

Командный чемпионат мира по программированию является самым престижным интеллектуальным состязанием молодой программистской элиты в мировом компьютерном сообществе. Представлены материалы по организации и проведению основных этапов чемпионата мира по программированию и результаты полуфинальных соревнований чемпионата 2001-2002 гг.

Ежегодный студенческий командный чемпионат мира по программированию среди сборных команд высших учебных заведений (ACM International Collegiate Programming Contest) проводится наиболее авторитетной в компьютерном мире международной организацией ACM - Assotiation for Computing Machinery ("the First Society in Computing") - с 1977 года. Эти соревнования являются самыми престижными интеллектуальными состязаниями молодой программистской элиты в мировом компьютерном сообществе. Соревнования рассматриваются ведущими компьютерными фирмами как источник их пополнения наиболее квалифицированными кадрами и традиционно поддерживаются крупнейшими компьютерными корпорациями. В последние годы четыре сезона подряд генеральным спонсором чемпионата была корпорация Microsoft, вложившая в организацию соревнований 27 миллионов долларов. Начиная с сезона 1997/98 гг., генеральным спонсором стал главный конкурент Microsoft - корпорация IBM, вступившая с ней в жесткую борьбу за лучшие головы планеты. В сезоне 2001/2002 гг. в 26-м чемпионате принимают участие около 3000 команд из более 1500 ведущих вузов 70 стран мира.

Согласно выработанным за более чем двадцатилетнюю историю правилам проведения соревнований команде, состоящей из трех участников, предоставляется один компьютер и предлагается в течение пяти часов решить максимальное число из предложенных задач, число которых обычно лежит в диапазоне от 7 до 9. Побеждает команда, решившая наибольшее число задач, а в случае равенства числа решенных задач - команда, затратившая меньше времени.

Схема организации чемпионата мира включает три этапа: четвертьфинальный, полуфинальный и финальный. На полуфинальных этапах команды соревнуются в сезоне 2001/2002 гг. в 29 региональных группах, среди которых распределены вузы стран всех континентов. Команды-победительницы полуфинальных состязаний выходят в финал, который состоится 20-24 марта 2002 г. в Гонолулу, Гавайские острова, США. В финале примут участие 60 команд из ведущих университетов мира. По результатам финальных соревнований определится команда - чемпион мира, а также команды - чемпионы континентов. В силу огромной конкуренции в финале используется специальная схема награждения. Командам, решившим одинаковое с чемпионом мира число задач, но уступившим ему по времени, присуждаются золотые медали, решившим на одну меньше -- серебряные, на две - бронзовые.

Россия впервые получила право на организацию собственной полуфинальной Северо-восточной Европейской группы в сезоне 1996/97 гг. Организацию соревнований Директорат чемпионата поручил Санкт-Петербургскому государственному институту точной механики и оптики (техническому университету), студенты которого успешно выступают в чемпионате. Северо-восточный европейский

регион включает страны бывшего СССР. В этом году полуфинальные соревнования прошли в Санкт-Петербурге в шестой раз.

С самого начала в течение пяти лет в качестве генерального регионального спонсора состязаний выступает выставочное объединение "Рестэк", предоставившее молодым российским программистам весомую материальную поддержку при организации их поездок на финал. Полуфинальные соревнования являются важной частью научно-образовательной программы известной выставки информационных технологий "Инвеком", проводимой компанией "Рестэк". В этом году спонсором состязаний выступают также Консорциум петербургских софтверных компаний "Форт Росс", а также известная корпорация Вестерн Юнион.

Итоги отборочных четвертьфинальных состязаний сезона 2001/2002 гг. показали огромный интерес вузов к этим соревнованиям. В частности, в этом году было организовано восемь четвертьфинальных региональных групп, охвативших всю территорию России и стран ближнего зарубежья: Дальневосточная (вуз-организатор -Дальневосточный ГУ), Восточно-Сибирская (Красноярский ГТУ), Западно-Сибирская (Новосибирский ГТУ), Уральская (Пермский ГУ), Южно-Поволжская (Саратовский ГУ), Центральная (Рыбинская государственная авиационная технологическая академия), Северо-западная (СПбГИТМО(ТУ)), Западная (Белорусский ГУ). В прошлом сезоне была организована также новая Закавказская полуфинальная группа, включающая вузы Армении, Азербайджана и Грузии. Всего в четвертьфинальных и полуфинальных соревнованиях приняла участие 301 команда из 148 вузов, представляющих практически все ведущие классические и технические университеты России, Азербайджана, Армении, Белоруссии, Грузии, Киргизии, Литвы и Эстонии.

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

В этом году одновременно с соревнованиями студентов в Санкт-Петербурге проходила и Вторая Всероссийская командная олимпиада школьников по программированию, организуемая по правилам олимпиад АСМ.

Как и в предыдущие годы, в рамках соревнований была проведена беспрецедентная акция по обеспечению участия в состязаниях в реальном масштабе времени команд сибирских вузов с использованием сети RUNNet. Команды ведущих вузов Барнаула, Новосибирска, Томска, Омска, Красноярска, Владивостока и других вузов Сибири и Дальнего Востока (32 команды) разместились во время проведения петербургского тура (в Аничковом дворце собрались 58 команд) в узле федеральной университетской компьютерной сети RUNNet, расположенном в Алтайском государственном техническом университете, и соревновались под наблюдением представителей жюри, которые специально прибыли в Барнаул. В Грузинском техническом университете в Тбилиси собрались почти 20 команд. Такая же схема соревнований была использована и для проведения олимпиады школьников. Полуфинальные соревнования дали яркий пример использования сети RUNNet для формирования единого научно-образовательного пространства России и, как следствие, укрепления единства и целостности Российского государства.

По результатам состязаний были определены семь команд - участниц финала чемпионата мира, а также команда - чемпион России по программированию 2001 года.

В 1996, 1997, 1999 и 2000 гг. чемпионами России становились петербургские команды: Государственного университета (трижды) и Института точной механики и оптики (технического университета). Эти же команды имеют лучшие достижения в

финалах мирового первенства: 2001 г. - СПбГУ - первое место и звание чемпионов мира, СПбГИТМО(ТУ) - золотые медали, третье место в абсолютном мировом зачете; 2000 г. - СПбГУ - первое место и звание чемпионов мира, СПбГИТМО(ТУ) -серебряные медали, четвертое место в абсолютном зачете, 1999 г. - СПбГИТМО(ТУ) -золотые медали, третье место в абсолютном зачете, 1998 г. - СПбГУ - золотые медали, второе место в абсолютном зачете. В 1998 г. чемпионом России стала команда МГУ.

В Санкт-Петербурге соревнования студентов и школьников прошли в Аничковом дворце с 24 по 29 ноября 2001 г.

Полуфинальные соревнования чемпионата мира по программированию отличались традиционно острым соперничеством московской и петербургской школ программирования, закончившимся победой петербуржцев, а также мощным наступлением команд провинциальных вузов, три из которых - Саратовский ГУ, Орловский ГТУ и Петрозаводский ГУ - впервые пробились в финал первенства.

Предварительные прогнозы были неутешительны для Санкт-Петербурга. Две великие петербургские команды, мировые лидеры прошедших двух сезонов, двукратные чемпионы мира - студенты Санкт-Петербургского государственного университета и серебряные-2000 и золотые-2001 призеры студенты Санкт-Петербургского государственного института точной механики и оптики - закончили свои выступления (в финале студент может выступить только два раза независимо от результата). В связи с этим резко возросли шансы на завоевание первого места у команд Московского государственного университета, которые уже предвкушали взятие близкого реванша у петербургских команд - за прошедшие пять сезонов москвичам удалось отобрать у петербуржцев звание чемпионов России только один раз. К тому же на этих соревнований "большую" тройку вузов - СПбГУ, СПбГИТМО, МГУ, занимавших три первые места в рейтинге достижений вузов полуфинальной группы за последние три года, " покинул" СПбГУ. К сожалению, молодые команды Санкт-Петербургского государственного университета, сформированные в основном из первокурсников, не выдержали напряженнейшей пятичасовой борьбы. В итоге лучшая команда СПбГУ оказалась лишь на 35 месте.

На старте соревнований команды дружно "набросились" на задачу С. Первыми ее решили на 24 минуте первая команда Уральского ГУ и команда Самарского муниципального университета. За ними на 26 минуте последовали третья команда Саратовского ГУ и четвертая команда СПбГИТМО. Неожиданностью соревнований стал быстрый старт третьей команды Саратовского государственного университета, которая на 48 минуте сдала вторую задачу В. На 53 минуте вторую задачу Б решила и четвертая команда первокурсников СПбГИТМО, которая в начале ноября на четвертьфинальных соревнованиях одержала сенсационную победу, выиграв первое место и звание чемпиона Санкт-Петербурга. Отметим, что этот успешный старт петербургских первокурсников оказался их последним успехом на соревнованиях. Не выдержав испытания внезапно открывшимися "грандиозными перспективами", они не сумели сдать за оставшиеся четыре часа ни одной задачи. После истечения первого часа соревнований две команды решили по две задачи и 16 команд - по одной. В число этих 18 команд входили 3 команды Саратовского ГУ, по 2 команды МГУ и СПбГИТМО и только четыре команды (Саратовский ГУ-3, СПбГИТМО-1, Петрозаводский ГУ-2, Орловский ГТУ-2), которые в итоге вышли в финал. Будущий победитель - команда СПбГИТМО-1 - занимала 12 место.

На втором часе борьбы на 63 минуте вторую задачу сдала команда Петрозаводского ГУ-2, на 76 минуте - МГУ-1, на 82 минуте - СПбГИТМО-1, на 85 минуте - МГУ-4, на 88 минуте - СПбГИТМО-3, на 89 минуте - Орловского ГТУ-2. После полутора часов сформировалась лидирующая группа из 8 команд, решивших по две задачи. Во второй половине второго часа команды начали сдавать третьи задачи.

Первой это сделала на 93 минуте команда Саратовского ГУ-3, за ней последовали команда СПбГИТМО-1 на 96 минуте и команда МГУ-1 на 102 минуте. Эти команды и составили лидирующую тройку. В конце второго часа активизировалась вторая команда СПбГИТМО. Сдав две задачи на 68 и 101 минутах, она, наконец, с шестой попытки сдала свою третью задачу С на 111 минуте. На втором часу соревнований пошли вперед и не сдавшие за первый час ни одной задачи команды Белорусского ГУ -все три его команды решили по две задачи. В итоге на исходе второго часа 4 команды решили по три задачи и 12 команд - по две задачи. В число этих 16 команд входили 4 команды СПбГИТМО, 3 команды МГУ и 3 команды БГУ.

В самом начале третьего часа на 121 минуте третью задачу сдала команда БГУ-1 и вышла на четвертое место. На 129 минуте свою четвертую задачу А решила первая команда СПбГИТМО и надолго заняла первую строчку турнирной таблицы. На 130 и 139 минутах две задачи сдала первая команда Орловского ГТУ, на которую тренеры возлагали основные надежды, и вышла с тремя решенными задачами на шестое место. Однако, работая в дальнейшем в течение почти трех часов над тремя задачами, ребята из этой команда так и не смогли сдать хотя бы еще одну задачу. На 160 минуте четвертую задачу решила вторая команда СПбГИТМО и вышла на второе место, правда, проигрывая первой команде своего вуза больше 200 минут штрафного времени. На 161 минуте третью задачу сдала команда Орловского ГТУ-2 и обошла первую команду своего вуза. На 163 и 166 минутах третьи задачи сдали четвертая команда МГУ, переместившаяся на пятое место, и третья команда первокурсников СПбГИТМО. На 169 и 172 минутах свои четвертые задачи решили первая и третья команды МГУ и вышли соответственно на второе и четвертое места. На 175 минуте третью задачу решила вторая команда Петрозаводского ГУ и поднялась на седьмое место, заявив о своих претензиях на место в финале. Таким образом, к исходу третьего часа по две команды СПбГИТМО и МГУ решили по четыре задачи, и 8 команд решили по 3 задачи. Третьей команде Саратовского ГУ, которая сдала свою третью задачу еще на 93 минуте, не удалось решить за прошедшие с того момента почти полтора часа ни одной задачи. Стало казаться, что все призовые места разыграют между собой многочисленные команды СПбГИТМО и МГУ.

Третий час соревнований стал чрезвычайно успешным для команды Башкирского ГУ, которая на 130, 147 и 181 минутах сдала три задачи и вошла в желанную финальную семерку. Кроме студентов Башкирии, на исходе третьего часа в семерку входили команды СПбГИТМО, МГУ, Саратовского ГУ, Петрозаводского ГУ, БГУ и Орловского ГТУ. В решающие заключительные два часа соревнований к борьбе за выход в финал были готовы также и находившиеся в непосредственной близости от лидирующей группы с двумя решенными задачами команды Уральского ГУ, Новосибирского ГУ и Красноярского ГТУ.

В начале четвертого часа на 194 минуте четвертую задачу решила и поднялась на пятое место третья команда первокурсников СПбГИТМО. Наконец, на 195 минуте свое долгое молчание прервала третья команда Саратовского ГУ, которая решила-таки свою четвертую задачу и вышла на второе место, " прорвавшись сквозь строй" команд СПбГИТМО и МГУ. В это время у тренеров команд СПбГИТМО начало вызывать опасения поведение их лидирующей первой команды, поскольку после сдачи на 129 минуте четвертой задачи она проявила себя только двумя неудачными заходами (на 170 и 193 минутах) на задачу H. Тренеры с облегчением вздохнули только на 203 минуте, когда была, наконец, добита эта задача. Дальше события стали приобретать захватывающий характер. На 206 минуте последовал новый успех команды Башкирского ГУ, она сдала четвертую задачу и вышла на шестое место. На 208 минуте свою пятую задачу решила команда Саратовского ГУ, сделав весомую заявку на призовое место. На 214 минуте четвертую задачу решила команда ОрГТУ-2 и вышла на

пятое место, поставив в весьма сложное положение первую команду своего вуза, которой для выхода в финал теперь стало необходимо решить не менее пяти задач. На 219 минуте вторая команда Белорусского ГУ решила четвертую задачу и опередила первую команду Белорусского ГУ, имевшую три решенные задачи. Третий час соревнований надолго запомнится и команде Новгородского ГУ. В течение этого часа ребята из Новгорода сдали на 196, 214, 219 и 230 минутах 4(!) задачи и переместились из группы команд, не решивших ни одной задачи и располагавшихся ниже 65 места, на 10 место, получив реальные шансы на выход в финал, которые, к сожалению, так и не удалось реализовать. Наконец, под занавес четвертого часа на 236 минуте пятую задачу сдала вторая команда СПбГИТМО и поднялась на третье место. В замороженной таблице результатов три команды решили по 5 задач и 7 команд по 4 задачи. В финальную семерку, наряду с командами СПбГИТМО, Саратовского ГУ, МГУ, БГУ, Орловского ГТУ, вошли на тот момент времени также и команды Башкирского и Новгородского ГУ, вытеснившие из числа финалистов команду Петрозаводска.

В начале пятого часа на 244 минуте пятую задачу решила первая команда МГУ, и вследствие этого вторая команда СПбГИТМО опустилась с третьего на четвертое место. На 250, 252 и 260 минутах свои четвертые задачи решили команды Петрозаводского ГУ, Новосибирского ГУ и первая команда Белорусского ГУ, которые оттеснили команды Башкирии, Новгорода и вторую команду Белорусского ГУ из финальной семерки благодаря меньшему числу штрафных минут. На 266 минуте команда Саратовского ГУ решила шестую задачу и вернулась на первое место, через минуту шестую задачу сдала первая команда МГУ и перешла на второе место. Лидер соревнований команда СПбГИТМО-1 за прошедшее с начала пятого часа время сделала неудачную попытку сдачи одной из двух самых сложных задач Б и никак не проявила себя в задаче Е, которую решили уже многие команды. Сидящие в жюри руководители команд СПбГИТМО испытывали малоприятные переживания - терялись казавшиеся такими близкими первое место и звание чемпиона России. Однако, к счастью для них, эти переживания оказались недолгими - на 270 минуте со второго захода первая команда СПбГИТМО сдала задачу Б и снова вернула себе первое место. Стало ясно, что она сможет решить и семь задач, поскольку после сдачи пятой задачи для решения задачи Е у нее было вполне достаточно времени. Это предположение оправдалось - за тринадцать минут до истечения контроля времени первая команда СПбГИТМО решила седьмую задачу и одержала блестящую чистую победу. Борьба за места в первой шестерки продолжалась до последнего момента времени. На 280 минуте шестую задачу решила вторая команда СПбГИТМО и, поднявшись на третье место, впервые за шестилетнюю историю полуфиналов вытеснила первую команду МГУ из призовой тройки. Сдав на 274 и 284 минутах две задачи, вышла на почетное пятое место с пятью решенными задачами опытнейшая четвертая команда МГУ - финалист Орландо-2000. И, наконец, на 283 минуте пятую задачу решила первая команда Белорусского ГУ, обеспечив себе шестое место.

Основные результаты полуфинальных соревнований (первые 20 мест) представлены в таблице с указанием числа решенных задач и штрафного времени (в мин.).

1. СПбГИТМО(ТУ)-1 7 1190

2. Саратовский ГУ 6 956

3. СПбГИТМО(ТУ)-2 6 1136

4. МГУ-1 6 1184

5. МГУ-4 5 856

6. Белорусский ГУ-1 5 1002

7. Орловский ГТУ-2 4 579

8. Петрозаводский ГУ-2 4 595

9. МГУ-3 4 634

10. СПбГИТМО(ТУ)-3

11. МГУ-2

12. Новосибирский ГУ-1

13. Белорусский ГУ-2

14. Башкирский ГУ

15. Уральский ГУ-1

16. Университет Тарту

17. Новгородский ГУ

18. Белорусский ГУ транспорта

19. Орловский ГТУ-1

20. Красноярский ГТУ-1

4 4 4 4 4 4 4 4 3 3 3

647

667

697

749

764

870

897

1179

445

500

523

Таким образом, первое место и звание чемпиона России, спустя пять лет после первого подобного успеха, завоевала первая команда СПбГИТМО. Новые чемпионы России - студенты знаменитой кафедры компьютерных технологий факультета информационных технологий и программирования СПбГИТМО(ТУ) Тимофей Бородин, Александр Штучкин и Евгений Южаков - закончили школы в Костроме, Саратове и Котласе и были приглашены на кафедру за успехи на Всероссийских олимпиадах школьников по информатике. Отметим, что в настоящее время на кафедре компьютерных технологий СПбГИТМО собраны в большой концентрации победители Всероссийских олимпиад школьников по точным наукам. Среди примерно 180 студентов шести курсов обучается около 60 студентов, получивших в школьные годы дипломы на Всероссийских олимпиадах школьников по информатике, что составляет почти третью часть от всех дипломантов Всероссийских олимпиад. По общей численности дипломантов кафедра сопоставима только с математическими факультетами МГУ и СПбГУ. Тренировал команду студент четвертого курса этой же кафедры, серебряный медалист Орландо-2000 и золотой медалист Ванкувера-2001 Андрей Станкевич.

В команду института точной механики и оптики, занявшую третье место, входили братья Андрей и Олег Пестовы и Иван Прокушкин, которые в школьные годы учились в Вятке и занимались в известном центре, возглавляемом одним из лучших российских педагогов Станиславом Михайловичем Окуловым. Интересно, что Евгений Южаков и Олег Пестов уже начали свою трудовую деятельность в известной петербургской фирме "Аркадия" в группе, руководимой председателем технического комитета соревнований, золотым медалистом Эйндховена-99 и тренером команды СПбГИТМО -золотого призера Ванкувера-2001 Матвеем Казаковым.

Неплохо выступила и команда первокурсников ИТМО, занявшая достаточно престижное 10 место. Результаты соревнований - это большой успех Центра подготовки одаренных программистов, работающего в институте точной механики и оптики и получившего в настоящее время без преувеличения мировое признание.

Впервые выиграв путевку в финал мирового первенства, блестящую победу одержала занявшая второе место и завоевавшая звание вице-чемпиона России команда Саратовского государственного университета в составе Андрея Лазарева, Михаила Мирзаянова и Ильи Эльтермана. Команду готовили к соревнованиям Наталия Львовна Андреева и Антонина Гавриловна Федорова. Успех саратовской школы подготовки программистов тем более значителен, что в первых командах СПбГИТМО и МГУ выступали Александр Штучкин и Максим Бабенко, которые тоже закончили саратовские школы. Этот успех - достойный итог многолетней работы, включающей, в частности, и проведение четвертьфинальных соревнований Южного (Поволжского) региона.

Традиционно сильно выступили и прошли в финал неоднократные участники финалов - команды Московского и Белорусского государственных университетов.

Отличительной особенностью прошедшего полуфинала было успешное выступление команд нестоличных вузов. Жаркая борьба за путевки в финал шла в основном между командами провинциальных российских вузов. Кроме СПбГИТМО и МГУ, ни один вуз из Москвы и Санкт-Петербурга не принял в ней участие - команда МИФИ оказалась на 24 месте, МАИ - на 46, МФТИ - на 68, команды СПбГУ - на 35, 36 и 65. Да и сильнейшие команды МГУ и СПбГИТМО "сражались друг против друга" иногородними студентами. Указанные обстоятельства наводят на определенные размышления об изменениях в распределении компьютерного интеллектуального студенческого потенциала России. В результате захватывающей борьбы путевки в финал впервые завоевали команды Орловского ГТУ и Петрозаводского ГУ, а также финалист Орландо-2000 команда Новосибирского ГУ, выступавшая в Сибирской полуфинальной группе в Барнауле и вернувшая себе звание чемпиона Сибири и Дальнего Востока.

По решению жюри соревнований дипломы АСМ с указанием занятого места были присуждены 17 командам, решившим четыре и более задач. Дипломы Всероссийской командной олимпиады по программированию были вручены командам, решившим 7, 6 и 5 задач, 2 степени - решившим 4 задачи, 3 степени - 3 задачи.

Следующий этап чемпионата - финал - пройдет в конце марта 2002 г. в городе Гонолулу на Гавайских островах.

Успехи петербургских студентов в двух последних финалах 2000 и 2001 гг. внесли, по общему мнению, огромный вклад в улучшение образа Санкт-Петербурга, да и всей России, в области информационных технологий. Пожелаем же новому поколению продолжить эту замечательную традицию.

Более подробную информацию можно получить у декана факультета информационных технологий и программирования СПбГИТМО(ТУ), члена Международного организационного комитета чемпионата мира по программированию Владимира Глебовича Парфенова, т. 233-42-98, 232-43-18, parfenov@mail.ifmo.ru