Парфёнов Владимир Глебович
ДВЕНАДЦАТЫЕ ПОЛУФИНАЛЬНЫЕ СОРЕВНОВАНИЯ СЕВЕРО-ВОСТОЧНОГО ЕВРОПЕЙСКОГО РЕГИОНА КОМАНДНОГО ЧЕМПИОНАТА МИРА ПО ПРОГРАММИРОВАНИЮ АСМ 2007/2008 гг.
Аннотация
В статье представлен увлекательный рассказ о том, как проходили двенадцатые полуфинальные командные соревнования чемпионата мира по программированию АСМ 2007/2008 гг. в Северо-Восточном Европейском регионе. Автор дает описание хода событий, рассказывает об итогах соревнований.
Также в статье рассказано о Восьмой Всероссийской олимпиаде школьников по информатике и программированию.
Двенадцатые полуфинальные соревнования Северо-Восточного Европейского региона тридцать второго чемпионата мира по программированию - ACM International Collegiate Programming Contest прошли 28 ноября 2007 года. Благодаря успешным выступлениям наших команд в финалах чемпионата мира, организационный комитет чемпионата мира выделил нашей полуфинальной отборочной группе десять финальных мест. После распределения дополнительных слотов нашей группе в финале было выделено еще два дополнительных места, и, таким образом, двенадцать команд-победительниц полуфинала становились участниками финала чемпионата мира в Банфе. Полуфинал проводился одновременно в Санкт-Петербурге, Барнауле, Ташкенте и Батуми.
В 15 четвертьфинальных отборочных соревнованиях нашей полуфинальной груп-
© В.Г. Парфёнов, 2008
пы сезона 2007/2008 гг. приняли участие 692 команд из 278 вузов, представлявших практически все ведущие классические и технические университеты России, а также университеты Армении, Белоруссии, Грузии, Казахстана, Киргизии, Латвии, Литвы, Узбекистана и Эстонии. Наша региональная полуфинальная группа снова стала самой большой по числу участвующих команд.
Спонсорами соревнований, наряду с генеральным спонсором - корпорацией IBM, выступили крупнейшие петербургские компании-разработчики программного обеспечения - Транзас, OpenWay, Devexperts, а также петербургский центр разработок компании Яндекс и Ассоциация компаний-разработчиков программного обеспечения России и стран ближнего зарубежья RUSSOFT. Соревнования в Барнауле поддержала компания «Софт-Сиб Алтай».
Полуфинальные соревнования проводились одновременно в реальном масштабе времени и с общей таблицей результатов в
Санкт-Петербурге (70 команд), Барнауле (40 команд), Ташкенте (58 команд) и Батуми (20 команд). Таким образом, всего выступали порядка 180 команд. Во все города были посланы представители жюри полуфинала, связь между городами осуществлялась при помощи интернета.
Для решения командам было предложено 11 задач. Как показал ход полуфинала, жюри на этот раз постаралось на славу. Так, задачи С, Э и К так и не были решены во время соревнования, а задачи Е, Б и в команды сдавали с большим трудом, нередко затрачивая для успешного решения 5-10 попыток. Ни одна команда не смогла сдать все три эти задачи. Собственно, эти задачи и оказались решающими для определения команд, выходящих в финал.
На старте вперед вырвались команды, которые не были отнесены к числу явных фаворитов. Первой на 8 минуте «открыла счет» молодежь из команды СПбГУ ИТМО-3, на 11 минуте сдала задачу вторая команда БГУ, на 14 минуте - первая команда Вологодского ГПУ, на 15 минуте вторая команда СПбГУ и команда СарГУ-5. За ними последовали команды Тюменского ГУ, Алтайского ГТУ и Рыбинской государственной авиационно-технологической академии.
На 24 минуте две задачи А и В подряд сдала команда Орловского ГТУ-1 и возглавила турнирную таблицу. На 30 минуте вторую задачу сдала команда СПбГУ ИТМО-3 и вышла на первое место с такими же решенными задачами. На 31 минуте вторую задачу решила команда Ереванского ГУ и переместилась на третье место.
Ведущие команды быстро перешли к сдаче третьих задач. Первой, на 48 минуте, это сделал один из главных претендентов на победу - команда СПбГУ-1 (более известная в олимпиадных кругах как «Бурундучки»). На 53 минуте их обогнала первая команда Орловского ГТУ, а на 56 минуте вперед вышла команда МГУ-3.
В начале второго часа полуфинала дело дошло до четвертых задач. Первой четвертую задачу решила команда Орловского ГТУ-1 и перешла со второго места на первое. На 96 и 99 минутах, соответственно,
четвертые задачи решили команды Ижевского ГТУ и первая команда СПбГУ ИТМО, которые разместились на втором и третьем местах, проигрывая лидировавшей команде почти 100 минут штрафного времени. На 118 минуте четвертую задачу сдала команда Ставропольского ГУ, поднявшаяся на четвертое место. И, наконец, под занавес второго часа полуфинала команда Ижевского ГТУ решила пятую задачу и вышла вперед. Таким образом, после второго часа одна команда решила 5 задач, три команды - по 4 задачи и 19 команд - по 3 задачи. Отметим, что три из четырех лидировавших команд представляли региональные вузы.
В начале третьего часа к «региональ-щикам» подтянулись и столичные вузы -команды СПбГУ-1 и МГУ-3 тоже решили четвертые задачи. Однако регионы продолжили свое наступление. На 136 минуте команда Орловского ГТУ решила пятую задачу и вновь вышла на первое место, выигрывая у ижевской команды почти 80 минут штрафного времени. На 144 минуте пятую задачу сдала команда УрГУ-1 и поднялась на третье место.
Команды из Орла и Ижевска продолжали развивать успех. На 147 и 154 минутах соответственно команды Ижевского ГТУ и Орловского ГТУ сдали шестые задачи. Их тандем продолжал возглавлять турнирную таблицу. По пять задач к этому моменту времени решили команды СПбГУ-1, Ставропольского ГУ, СПбГУ ИТМО-3, УрГУ-1 и УрГУ-2. К окончанию третьего часа соревнований число команд, решивших по пять задач, увеличилось до 11. Обращало на себя внимание отсутствие в лидирующей группе крепко засевших на задачах Е и Б команды СПбГУ ИТМО-1 (4 решенные задачи и 5 неудачных попыток сдачи задач Е и Б), а также команд МГУ-1 (3 решенные задачи и шесть безуспешных заходов на задачу Е) и МГУ-2 (3 решенные задачи и неудачный заход на задачу Б). Эти сильные команды попали в сложное положение, поскольку значительно отстали от других команд своих вузов.
На 184 минуте шестую задачу решила команда МГУ-3. Она вышла на третье мес-
то и, казалось, окончательно похоронила надежды команд МГУ-1 и МГУ-2 на выход в финал, опережая их на три решенные задачи. На 198 минуте одновременно шестые задачи сдали команды Ставропольского и Петрозаводского государственных университетов, которые поднялись на четвертую и пятую позиции и сделали весомые заявки на завоевание мест в финале. На 205, 207 и 210 минутах шестые задачи решили соответственно команды СПбГУ ИТМО-3, БГУ и СПбГУ ИТМО-2. На 228 минуте шестую задачу решила команда УрГУ-1. Сдав на 197, 225 и 230 минутах три задачи, поднялась из глубины турнирной таблицы команда МГУ-2. Она заняла десятое место, проигрывая команде МГУ-3 250 (!) штрафных минут.
В замороженной таблице результатов 10 команд решили по 6 задач и 14 команд -по 5 задач. При этом десятое, одиннадцатое, двенадцатое и тринадцатое места занимали, соответственно, команда МГУ-2 с шестью задачами и решившие по пять задач команды СПбГУ-1, СПбГУ ИТМО-1 и Сар-ГУ-1, которые поставили себя в исключительно сложное положение. Кстати, команда МГУ-1 так и осталась к началу заключительного часа с тремя решенными задачами, опустившись на 39 место.
На первой минуте заключительного часа молодежь из команды СПбГУ ИТМО-3 сдала седьмую задачу, вышла на первое место и, казалось, поставила своих старших товарищей из команды СПбГУ ИТМО-1 в безвыходное положение. Теперь команде СПбГУ ИТМО-1 для выхода в финал было необходимо решить в оставшийся час, по крайней мере, три задачи, что казалось малореальным с учетом характера ее выступления в проходящем полуфинале. Практически одновременно с командой СПбГУ ИТМО-3 на 241 минуте седьмую задачу сдала команда Ижевского ГТУ, которая возглавила турнирную таблицу и получила реальные шансы на завоевание титула чемпиона России. На 245 минуте седьмую задачу решила команда СПбГУ ИТМО-2, на 250 минуте команда Петрозаводского ГУ-1, на 257 минуте - команда Ставропольского ГУ,
которая поднялась на второе место. На 276 минуте седьмую задачу решила команда МГУ-2, которая вытеснила из числа команд, выходящих в финал, третью команду своего вуза.
У команды Ижевского ГТУ оставался час для решения восьмой задачи Б, на сдачу которой к началу пятого часа она потратила уже семь попыток. Как показал дальнейший ход событий, решение этой задачи принесло бы команде титул чемпионов России, который в этом случае был бы впервые завоеван командой из регионального вуза. Однако «силы оставили» ребят из Ижевска, и в оставшееся время они не сделали ни одной попытки сдать ее.
До конца соревнований оставалось всего полчаса, а сильные команды СПбГУ-1 и СПбГУ ИТМО-1 «зациклились» на решении ставших для них общим камнем преткновения задачах Е и Б и опускались все ниже и ниже в турнирной таблице, окончательно теряя последние шансы на выход в финал и приводя в отчаяние своих тренеров Андрея Лопатина и Андрея Станкевича. Стало казаться, что финал в Канаде пройдет без них. Наконец, на 272 минуте «луч надежды» зажегся для команды СПбГУ ИТМО-1, которая наконец-то с девятой попытки сдала задачу Б и переместилась на шестое место, правда, при этом безнадежно проигрывая по штрафному времени двум другим командам своего вуза.
В последний час состязаний «проснулась» и начала бурно финишировать команда МГУ-1, которая на 242, 267, 268 и 289 минутах сдала четыре задачи, но так и не смогла обойти команду МГУ-2, отстав от нее почти на 250 минут штрафного времени.
В захватывающей борьбе прошли последние двадцать минут полуфинала. На 280 минуте седьмую задачу сдала команда БГУ и обеспечила себе место в финале. На 284 минуте с седьмой попытки шестую задачу Б наконец-то сдала команда СПбГУ-1 и вновь «зажгла огонек надежды» у своего тренера. На 290 минуте с пятнадцатой попытки задачу Е «добила» команда СПбГУ ИТМО-1 и вышла на первое место с восе-
мью решенными задачами и огромным штрафным временем. На 291 минуте седьмую задачу сдала команда СПбГУ-1 и тоже обеспечила себе место в финале. В оставшиеся девять минут эта команда предприняла отчаянные, но безуспешные усилия для сдачи задачи Е, которая могла бы принести ей титул чемпиона России. За пять минут до конца тура в борьбу за абсолютную победу включилась команда Петрозаводского ГУ-1, которая предприняла две безуспешные попытки сдать задачу Б и вырвать чемпионское звание. В результате все наилучшим образом сложилось для команды СПбГУ ИТМО-1 - все «грозы прошли стороной», и ей удалось удержаться на первом месте. Их младшим товарищам из команды СПбГУ ИТМО-3 не удалось отобрать у «ветеранов» единственную для вуза путевку в финал.
Предварительные прогнозы показывали, что основная борьба развернется между командами «программистских грандов» СПбГУ, СПбГУ ИТМО и МГУ, только из числа которых выходили чемпионы России на предыдущих одиннадцати чемпионатах. Однако, как мы видели, соревнования пошли по другому сценарию. Практически все время тура лидировали, сменяя друг друга, команды Ижевского ГТУ, Ставропольского ГУ и Орловского ГТУ. Назревала сенсация - впервые чемпионом России мог стать нестоличный вуз. Многочисленные команды «грандов», пребывая в диапазоне мест с пятого по пятнадцатое, боролись в основном с командами собственных университетов за единственную путевку в финал, которую по правилам соревнований может завоевать университет. И только буквально на последних минутах пятичасовой борьбы вышли на первое место студенты первой команды СПбГУ ИТМО, оттеснив на второе место команду Ижевского ГТУ. Третье место завоевала команда Ставропольского ГУ. Лучшая команда СПбГУ осталась на 8 месте, две лучшие команды МГУ - на 9 и 10 местах, а команда МФТИ - на 15 месте. Еще две команды СПбГУ ИТМО заняли соответственно 4 и 6 места, на 5 месте оказалась сборная Белорусского ГУ, на
6 месте - Петрозаводского ГУ. Таким образом, Санкт-Петербург завоевал четыре места в первой десятке и подтвердил свой титул столицы российского программирования.
Кроме вошедших в первую десятку команд СПбГУ ИТМО, Ижевского ГТУ, Ставропольского ГУ, Белорусского ГУ, Петрозаводского ГУ, СПбГУ и МГУ, в финал также вышли команды Орловского ГТУ (11 место), Уральского ГУ (13 место), МФТИ (14 место), Новосибирского ГУ (15 место) и Алтайского ГТУ (17 место).
Чемпионом России 2007 года стала первая команда Санкт-Петербургского государственного университета информационных технологий, механики и оптики в составе шестикурсника Дмитрия Абдрашитова и пятикурсников Дмитрия Паращенко и Федора Царева, тренировал команду Андрей Сергеевич Станкевич. Команда СПбГУ ИТМО завоевала титул чемпиона России в пятый раз, и СПбГУ ИТМО вышел вперед по общему числу побед в чемпионатах России.
Вице-чемпионом России стала команда Ижевского государственного технического университета в составе Александра Скида-нова, Евгения Кузякова и Виктора Кама-шева, тренировал команду Владимир Георгиевич Тарасов. Отметим, что команды Ижевского ГТУ добивались больших успехов в финалах чемпионата мира, завоевав там серебряные (2004 г.) и бронзовые (2005 г.) медали, но в тройку призеров чемпионата России попали впервые.
Впервые в призовую российскую тройку попала и команда Ставропольского государственного университета, в состав которой входили Иван Красильников, Кирилл Гриценко и Михаил Бабенко, тренировала команду Елена Александровна Бондаренко.
Дипломами первой степени Двенадцатой Всероссийской студенческой олимпиады по информатике и программированию были награждены 10 команд, решивших по 8 и 7 задач, дипломами 2 степени - 11 команд, решивших по 6 задач, и дипломами 3 степени - 39 команд, решивших по 4 и 5 задач.
Тремя днями раньше, в воскресенье 25 ноября, в Аничковом дворце завершилась традиционная Восьмая Всероссийская командная олимпиада школьников по информатике и программированию. В финальном туре олимпиады, организованной Санкт-Петербургским городским Дворцом творчества юных и Санкт-Петербургским государственным университетом информационных технологий, механики и оптики, приняли участие более 140 команд: 75 в Санкт-Петербурге, 40 в Барнауле, где собрались школьники Сибири и Дальнего Востока, 15 в Батуми, где соревновались школьники Армении и Грузии, и 20 команд - в Ташкенте. Всего же в отборочных состязаниях приняли участие более 400 команд.
Напряженная пятичасовая борьба завершилась сенсационной победой белорусских команд. Первое место и Кубок чемпионов олимпиады завоевала сборная команда городов Гомеля и Столбцов, третье место -сборная команда города Мозыря. Только на втором месте оказался новый чемпион России - сборная команда Нижнего Новгорода и Сарова. Сборные команды Москвы и Санкт-Петербурга остались на четвертом и пятом местах, безнадежно отстав от первой тройки по штрафному времени. Такого разгрома школьников российских столиц не случалось за всю многолетнюю историю этих интеллектуальных соревнований. До этого по три раза первое место завоевывали московские и петербургские команды, и один раз - в 2005 году - первенство выиграла сборная Новосибирска. Результат белорусских команд произвел потрясение среди собравшихся в Санкт-Петербурге ведущих преподавателей и молодых программистов России и стран ближнего зарубежья, которые принялись искать на карте Белоруссии города Столбцы и Мозырь. Победа белорусских ребят выглядит еще более впечатляющей, если учесть составы сборных команд Москвы и Санкт-Петербурга. Эти команды были сформированы на базе лучших специализированных школ России - московского лицея № 57 и петербургских физико-математического лицея № 239 и лицея «Физико-техническая шко-
ла». Напомним, что лицей № 57 закончил абсолютный чемпион мира по программированию 2006 и 2007 гг. Петр Митричев, а лицей № 239 - семь школьников, ставших впоследствии чемпионами мира по программированию в составе команд Санкт-Петербургского государственного университета и Санкт-Петербургского государственного университета информационных технологий, механики и оптики.
Болельщикам, наблюдавшим за ходом соперничества российских и белорусских команд, поневоле приходило на ум сравнение со схваткой Давида и Голиафа. Отметим, что в Москве и Санкт-Петербурге существуют мощные системы поиска и подготовки одаренных в области информатики и программирования школьников, с которыми работают педагоги мирового класса. Например, в Санкт-Петербурге эту работу возглавляет считающийся одним из лучших тренеров мира в области соревнований по программированию Андрей Станкевич, который в частности готовит и студенческие команды Санкт-Петербургского государственного университета информационных технологий, механики и оптики, широко известные своими победами в студенческом чемпионате мира по программированию. Этот вуз возглавляет мировой рейтинг университетов, составленный по результатам выступлений их команд в финалах студенческого чемпионата мира за последние пять лет. Молодым российским программистам оказывается поддержка на самом высоком правительственном уровне -в 2004 году победителей студенческого чемпионата принимал Президент России Владимир Путин, в 2007 - Первый вице-премьер Дмитрий Медведев. За подготовку одаренных молодых программистов российским педагогам была присуждена Премия Президента России в области образования, и, в частности, упомянутый выше Андрей Станкевич является самым молодым ее лауреатом. В последние годы улучшившееся экономическое положение России позволило резко усилить поддержку одаренных молодых программистов и их педагогов со стороны государства и компаний-разработ-
чиков программного обеспечения и довести ее до уровня, который, по-видимому, намного превосходит имеющийся в Белоруссии. Так, например, в этом году Правительство Москвы выдало в бесплатное пользование ноутбуки примерно 80 московским школьникам, проявившим заметные способности в области информатики и программирования. Повсеместно произведено техническое переоснащение основных образовательных центров. В общем, если исходить из таких параметров, как численность населения, число специализированных физико-математических школ, число высококвалифицированных педагогов, объем денежной поддержки, степень технической оснащенности, то, казалось бы, что школьники из Гомеля, Столбцов и Мозыря не имеют никаких шансов в борьбе со своими столичными сверстниками.
Однако в программировании далеко не все решают компьютеры, деньги и даже способности. Есть еще и такие факторы, как мотивация, трудолюбие, стремление к победе, наличие лидера, ставящего перед ребятами большие цели. Благодаря именно этим качествам белорусским ребятам удалось одержать эту фантастическую победу.
Много лет работу с гомельскими школьниками и студентами возглавляет Михаил Семенович Долинский. Подготовленные им ребята всегда достойно представляли Белоруссию на этих соревнованиях и неоднократно входили в первую десятку команд. Благодаря этому, город Гомель получил
международную известность как центр подготовки молодых одаренных программистов. И вот, наконец, к выдающемуся педагогу пришел долгожданный ошеломляющий успех. Остается порадоваться за белорусских ребят, с которыми, как все надеются, Михаил Семенович будет работать еще много лет и одерживать много прекрасных побед.
Не менее, а даже и в значительно большей степени поразил всех и успех сборной команды Мозыря. И если гомельская школа подготовки молодых одаренных программистов была всем хорошо известна, то Мозырь среди программистов был практически неизвестен. И вот команда, подготовленная Алексеем Бруновым, руководителем кружка информатики при Клубе юных пожарных (!) Мозыря, города со стотысячным (!) населением, одерживает победу над сборными Москвы и Санкт-Петербурга. Местонахождение кружка информатики и размер населения Мозыря многократно усиливали шоковый эффект от выступления юных программистов. Впечатление от этого события можно сравнить разве что с эффектом от победы сборной Мо-зыря по футболу над мадридским Реалом или лондонским Челси.
Хочется, как говорится, «снять шляпу» перед белорусскими ребятами и их наставниками и поблагодарить их за фантастическую победу. Остается надеяться, что она «встряхнет» несколько потерявших ориентиры российских программистских звезд.
Abstract
This article presents a fascinating story about how the 12th semifinal team contest of ACM 2007/2008 World Programming Championship was held in the North-East European region. The author describes the whole storyline and tells about the results of the contests.
The article also describes the 8th Russian School Olympiad in Informatics and Programming.
Парфёнов Владимир Глебович, профессор, декан факультета информационных технологий и программирования СПбГУ ИТМО, [email protected]
(§) Наши авторы, 200В. Our authors, 200В