В этом году региональный этап турнира по спортивному программированию ICPC по Северо-Западному России стал одним из самых представительных за всю историю соревнований. Впервые здесь был проведен отборочный этап, куда могли заявиться все желающие. По итогам квалификации в четвертьфинал отобрались 120 команд (из них в итоге прибыло 114 команд из 25 университетов).
В четвертьфинале командам пришлось куда сложнее, чем на отборе. Помимо уровня заданий, также сыграл свою роль вопрос языковой подготовки, ведь задания начиная с этого этапа предоставляются не на русском языке, а на английском.
«К сожалению, это повлияло на результат некоторых команд, они выступили хуже, чем хотелось бы, – поясняет доцент факультета информационных технологий и программирования Университета ИТМО, директор регионального четвертьфинала Георгий Корнеев. – Это видно по тому, как решаются примерно одинаковые по сложности задачи. Некоторые задания решаются сходным образом, если точно понять, что тебе нужно делать, а поскольку затраченное одними и теми же командами время на их решение совсем разное, это значит, что как раз возымел эффект язык условий. Это, конечно, не служит непреодолимым препятствием, однако задерживает команды – они тратят, условно, десять минут на решение задачи вместо пяти».
Уровень заданий, с которыми пришлось столкнуться командам, также заметно отличался от квалификации, для которой организаторы составили максимально простые задачи, чтобы все участники, даже без какой бы то ни было серьезной подготовки, могли решить хотя бы одно задание.
«Самая простая задача этого этапа была на уровне второй-третьей задачи квалификации. В конце были задачи, аналога которым просто не было, – поясняет Корнеев. – Вот пример сравнительно простой задачи: есть холм, на нем есть дорожки и есть бегун, который по ним бежит. Он всегда бежит сверху-вниз по холму, пробегая всеми возможными путями. Требуется восстановить граф, то есть связь друг с другом, всех дорожек, исходя из информации, полученной от фитнес-браслета».
Успех Университета ИТМО, яркий дебют МГТУ
В результате из 13 заданий в этом четвертьфинале команда-победительница, представляющая Университет ИТМО, решила за пять часов, отведенных на турнир, 11 задач. Второе место осталось за представителями Высшей школы экономики, решившими 10 заданий. Половина участников смогла решить 4 и более задач.
«В целом я доволен, что мы выиграли, мы даже опередили на задачу наших ближайших соперников, но я считаю, что мы могли выступить лучше. У нас осталось две нерешенные задачи, и я думаю, что хотя бы с еще одной мы могли бы справиться, – поделился впечатлениями участник команды ИТМО 1, занявшей первое место, Николай Будин. – Залогом нашей победы, мне кажется, являются постоянные тренировки. Мы пишем по три контеста (пакета задач) в неделю».
Ярким получилось первое выступление команды Мурманского государственного технического университета (МГТУ). В этом году команда из МГТУ впервые приняла участие в турнире ICPC, и одна из них сразу отобралась в полуфинал.
«Одна из мурманских команд попала в полуфинальные соревнования, – рассказывает Корнеев. – Для дебютантов это просто отличный результат. В последний раз такое было с Псковским государственным университетом лет семь назад».
В результате в полуфинал региональных соревнований от Северо-Запада вышли пять команд из Университета ИТМО, пять команд Санкт-Петербургского государственного университета, две команды от Высшей школы экономики, еще две от Санкт-Петербургского политехнического университета, по одной от Университета «ЛЭТИ» и Михайловской артиллерийской академии, а также представители Петрозаводска, Мурманска, Великого Новгорода.
Школьные соревнования
Традиционно в один уикэнд с региональным соревнованием ICPC для студентов в Петербурге также проходят региональные отборочные туры Всероссийской командной олимпиады школьников по программированию (ВКОШП). Они проводятся почти по тем же правилам, что и чемпионат ICPC: на решение заданий у команд пять часов, каждая команда состоит из трех человек. Задания – математические задачи, которые надо не просто решить, а написать программу, которая будет решать их для любых заданных значений. Правильность работы написанного командой кода проверяет компьютер.
«Первые задания очень “добрые”, за час стартовую задачу решила половина команд, – рассказывает член жюри соревнований Михаил Дворкин. – Cамые сложные, думаю, на уровне шестой-седьмой задачи четвертьфинала студенческого ICPC из тринадцати. Для примера – у нас есть круглая пицца и 16 человек, каждый из которых хочет получить кусочек строго определенного размера: уголок в 7 градусов, уголок в 19 градусов и так далее. Далее у нас есть нож, который может резать или по радиусу, или вдоль всего диаметра пиццы и нам нужно понять, как разрезать пиццу наиболее рационально, сделав минимальное число разрезов».
Помимо сложности задач, отличие школьной олимпиады в том, что участники могут проносить с собой справочную и учебную литературу. Студентам это категорически запрещено – они могут взять с собой лишь еду, напитки, талисманы и при необходимости словарь. Нарушение этих правил для них грозит дисквалификацией.
В этом году школьная олимпиада собрала в Университете ИТМО 118 команд из 53 школ, гимназий и лицеев Санкт-Петербурга. При этом возрастного ограничения нет – на олимпиаду может прийти любой школьник от 1 до 11 класса.
«Я учусь в 9 классе 533 лицея, – рассказывает участница соревнований Елизавета Цителова. – Мне понравилось, ведь у меня классная команда, прикольно было решать задачи. Мы решили заявиться, потому что нам нравится программирование, мы им много занимаемся».
Несмотря на то, что само по себе участие в этой олимпиаде не дает выхода на международные турниры и не поможет в поступлении в вуз, борьба между участниками идет нешуточная. В этом году за первое место схлестнулись две команды. Сборной в составе Андрея Ефремова (Президентский физико-математический лицей №239), Андрея Одинцова (школа №6, г. Всеволожск), Ильдара Гайнуллина (Лицей при Казанском Федеральном университете, г. Казань) удалось опередить на одну задачу команду в составе Сергея Харгелия, Ивана Волкова, Даниила Павленко из ФМЛ №239 и Юношеской математической школы.
Следующие этапы соревнований среди школьных и студенческих команд пройдут с 29 ноября по 1 декабря в парке «Россия – моя История». Финал всемирной студенческой олимпиады по программированию ICPC состоится в Москве в 2020 году.
Организатором региональных этапов соревнований выступает официальное представительство ICPC в Северном Евразийском регионе, созданное на базе Университета ИТМО (ICPC NERC HQ).
International Collegiate Programming Contest (ICPC) — старейший, крупнейший и самый престижный в мире чемпионат по спортивному программированию. Соревнования проводятся ежегодно с 1977 года. В финал чемпионата попадают команды, прошедшие многоступенчатый отбор — сначала в своем вузе, затем на региональных этапах. Так, в региональном полуфинале 2018 года по Северной Евразии (Россия, СНГ, страны Балтии) участвовали почти 300 команд, в финальных соревнованиях — 135.