Спорт и код: как проходят тренировки чемпионов мира по программированию
Чемпионат ACM ICPC проводится Ассоциацией вычислительной техники (Association for Computing Machinery, ACM) при спонсорской поддержке корпорации IBM и считается старейшим и самым престижным соревнованием по спортивному программированию среди студентов.
В ходе контеста студенты должны за минимальное время решить максимальное число предложенных задач, которые созданы из спектра проблем инициативы IBM «Разумная планета». Всего на решение задач отводится пять часов.
«Чемпионаты друг от друга в основном отличаются только местом проведения, потому что организаторы стараются создать максимально схожие условия для программистов», — рассказывает Адам Бардашевич, участник команды Университета ИТМО. «Если бы я организовывал чемпионат, то сократил бы время до 3,5 часов, — шутит о прошедшем контесте серебряный чемпион из Университета ИТМО Антон Ковшаров (через 3,5 часа команда была первой в списке— прим. ред), — Нам не хватило времени на чемпионате: не стоило браться за решение нескольких задач сразу». Также он отметил, что на Западе до сих пор удивляются победам команд Андрея Станкевича. Адам и Антон уже не могут принять участие в следующем чемпионате — на ACM ICPC можно участвовать только два раза. Но Владимир Смыкалов, третий участник команды, решительно настроен на победу в следующем соревновании.
С каждым годом сложность чемпионатов увеличивается. За последние шесть лет поменялся и тип задач: раньше они были в большинстве на реализацию, сейчас — на придумывание. «В таких задачах большая часть времени уходит на разгадывание решения. А вот решение задачи на реализацию обычно очевидно и сложность в том, чтобы его написать на языке программирования, — поясняет Антон. — На прошедшем чемпионате одна задача была на стандартный алгоритм, а мы этого не ожидали — придумали красивое решение, которое оказалось неправильным».
Команда Университета ИТМО (слева-направо): Адам Бардашевич, Владимир Смыкалов, Антон Ковшаров
Программисты много тренируются. Подготовки к чемпионатм мало отличаются от тренировки олимпийских чемпионов. Сначала тренер формирует «командный дух»: необходимо, чтобы участники нашли взаимопонимание, наладили взаимодействие внутри команды. Во время тренировки создаются «реальные» условия соревнования: участникам дают задания с прошедших контестов и ограничивывают во времени.
Тренер команды СПбГУ и чемпион мира из Университета ИТМО рассказали «Мегабайту» об особенностях подготовки в их вузах.
— Андрей Лопатин, тренер команды СПбГУ
— Павел Маврин, чемпион мира по программированию 2004 года
Фото команды: Антон мальков