Команда из Саратовского государственного университета одержала победу на 30-м студенческом командном чемпионате мира по программированию (International Collegiate Programming Contest, ICPC,www.acmicpc.org), финал которого (icpc.baylor.edu/icpc/Finals) состоялся 12 апреля в Сан-Антонио (США). Вместе с ней золотыми медалями отмечены занявшие второе —- четвертое места представители Ягеллонского университета (Краков, Польша), Алтайского государственного технического университета (Россия) и университета города Твенте (Голландия). Кроме них в первую дюжину из числа российских вузов попали команды Санкт-Петербургского государственного университета (серебро), Московского государственного университета и Уфимского государственного технологического университета авиации (бронза).
Победители чемпионата мира ICPC ‘2006 — студенты Саратовского государственного университета со своими наставниками |
Чемпионат ICPC проводится международной Ассоциацией вычислительной техники (Association for Computing Machinery ACM,www.acm.org). Это соревнование стало всемирным в последние десять лет во многом благодаря корпорации IBM — его генерального спонсора с 1997 г. За это время существенно расширилась география состязания. Число университетов и команд, участвующих в предварительных этапах соревнования, увеличилось соответственно с 560 и 860 в 1997 г. до 1733 и 5606 в 2006 г. (из 183 городов 84 стран). Право на участие в мировом финале ICPC 2006 года получили 83 лучшие команды, из которых десять представляли Россию — две из Санкт-Петербурга, остальные из Барнаула, Екатеринбурга, Москвы, Саратова, Петрозаводска, Челябинска, Уфы и Ярославля.
Нужно сказать, что российские вузы весьма успешно выступают в ICPC — в 2001, 2002 и 2004 гг. побеждали петербургские университеты (см. PC Week/RE, № 13/2004, с. 39). И вот теперь — команда из Саратовского государственного университета (СГУ,www.sgu.ru) в составе аспирантов Игоря Кулькина и Ивана Романова, а также студента пятого курса Романа Алексеенкова. Конечно, их успех не случаен: все они опытные участники школьных и студенческих состязаний по программированию, их тренер, также аспирант СГУ, Михаил Мирзоянов — двукратный серебряный призёр чемпионата мира ICPC, чемпион Европы 2002 года. Саратовский университет участвует в этих соревнованиях с 1996 г., а с 1998 г. он является центром проведения Южного-Поволжского четвертьфинала чемпионата. Последние три года в СГУ работает Центр олимпиадной подготовки программистов имени Н.Л.Андреевой.
Соревнования ICPC уже много лет проводятся по довольно простой, но весьма жесткой схеме, требующей от участников не только знаний в области математики, логики и программирования, но и умения выбрать оптимальную стратегию для решения всего комплекса задач, а также навыков коллективной работы. Командам предлагается набор из 10 задач, которые нужно решить за 5 часов. Коллектив из трех человек работает с одним компьютером. В качестве инструментов используются средства Open Source. В этом году на ПК была установлена операционная система Fedora Core 4 Linux с графическими оболочками KDE и GNOME и набором редакторов. Программировать можно на одном из трех языков: Cи/С++, Java (в среде Eclipse 3.1) или Pascal (Borland Kylix 3.0)*.
А дальше нужно выбрать оптимальную стратегию достижения результата. Побеждает команда, которая решила больше задач. Все задания равнозначны с точки зрения оценок, но на самом деле имеют разную сложность. Значит, нужно выбрать правильный путь, двигаясь от простых задач к более трудным (а с ходу определить сложность не так-то легко). Решение каждой задачи выполняется в итерационном режиме: написанная программа отдается на тестирование арбитрам, которые в случае обнаружения ошибки возвращают ее на доработку, начисляя при этом 20 штрафных минут. Что лучше — проводить более тщательный анализ исходного кода или чаще обращаться к арбитрам? Есть над чем подумать…
Саратовская команда смогла одолеть шесть заданий, столько же решили студенты из Кракова, но они набрали заметно больше штрафного времени. Все остальные призеры получили меньше (по сравнению с первым местом) штрафных минут, но смогли сделать только 4-5 задач.
В соответствии с условиями соревнований команде-победителю досталась награда в 10 тыс. долл., остальным золотым медалистам — по 3000 долл., серебряным и бронзовым —- по 1000 долл. Но самое главное: все молодые участники ICPC, не только призеры и финалисты, получили ценный опыт, который наверняка поможет им в построении успешной профессиональной карьеры.
_______________________________________________________
*Паскаль использовался на чемпионатах ICPC в последний раз. В 2007 г. останутся только Cи/С++ и Java.