Это произошло 5 мая в отеле-казино “Аладдин”, расположенном в центре мировой столицы игорного бизнеса. Но только не в одном из многочисленных залов с игровыми автоматами, а в конгресс-центре, где в течение трех дней 64 финалиста из 19 стран боролись за победу в международном турнире по спортивному программированию TopCoder Open 2006 (www.topcoder.com) с общим призовым фондом 150 тыс. долл. В одной из трех главных номинаций конкурса — Algorithm — лучшим стал россиянин, студент мехмата МГУ Петр Митричев. В двух других — Component Design и Component Development — первыми оказались Тим Робертс из США и Синдуната Судармай из Индонезии.
Организатором турнира является появившаяся в 2001 г. компания TopCoder, которая сама по себе -- весьма любопытный феномен современного ИТ-рынка. Ее основатель и бессменный руководитель Джек Хьюс (Jack Hughes) сформулировал следующую бизнес-цель: поиск по всему миру лучших софтверных разработчиков и оценка их возможностей (“рейтингование”). Инструментом решения этой задачи стала созданная им система соревнований по программированию -- на сегодняшний день в них принимает участие около 80 тыс. человек из более чем 200 стран мира. Самую большую известность получил турнир TopCoder Open, нередко именуемый неофициальным личным чемпионатом мира по спортивному программированию. В этом году в его отборочных этапах состязалось свыше 4200 программистов. В отличие от соревнований ICPC, проводимых ассоциацией ACM (см. PC Week/RE, № 14/2006, c. 1), к участию в TopCoder Open допускаются все желающие, а не только студенты вузов.
Петру Митричеву вручают главный приз от спонсора состязаний AMD — чек на 20 тыс. долл. |
Перспективность деятельности TopCoder была быстро оценена ИТ-рынком, который увидел в этом новую возможность поиска талантов и перспективной молодежи для решения своих кадровых проблем, особенно в связи с необходимостью выполнения уникальных или инновационных проектов. Об этом, в частности, говорит спонсорский состав TopCoder Open: генеральным спонсором является корпорация AMD, но еще показательнее, что в списке “доноров” есть и Агентство национальной безопасности США (радиоэлектронная разведка с многомиллиардным бюджетом).
Однако вернемся к собственно TopCoder Open. Широкое участие в нем программистов из стран СНГ началось в 2004 г., и на этот раз на полуфинал и финал в Лас-Вегасе отправилось восемь игроков из России и по одному из Украины и Киргизии.
За победу в номинации Algorithm боролось наибольшее количество претендентов — 48 человек. Здесь нужно было решить три алгоритмические задачи с использованием Java, Visial Basic .NET, С++ или C#. Состязание проходило в два этапа: coding phase (собственно решение задач), длившийся 75 мин, и затем 15-минутный challnge phase, когда участники могли попробовать найти ошибку в решениях конкурентов. Победа Петра Митричева тут была безусловной, так как только он смог решить все три задачи и в итоге набрал сумму очков, в три раза превышающую результат ближайшего соперника.
Успех московского студента конечно же никак нельзя назвать случайностью. Только в этом году он выиграл Открытый командный кубок CBOSS-МГУ. Причем его команда под названием Petr состояла всего из одного человека — самого Митричева, в то время как в конкурирующих командах, как правило, три игрока. А в марте этого года он завоевал первое место в состязании по спортивному программированию на сайтеwww.Test-The-Best.by. Ранее Петр успел побывать трехкратным чемпионом всероссийских школьных олимпиад по информатике, завоевывал золотые и серебряные медали на международных школьных олимпиадах, золотые медали на международных командных студенческих соревнованиях по программированию. Отвечая после финала TopCoder Open на вопрос, как ему удалось решить третью, самую сложную задачу, Петр Митричев сказал: “Мне идея решения этой задачи известна класса с восьмого. Так что когда я ее увидел, то за пару минут придумал, как решать”.
Что ж, дважды в этом году, в течение одного месяца, российские студенты доказали высокий уровень своей подготовки по спортивному программированию, выиграв самые престижные и массовые состязания — чемпионат мира ICPC и TopCoder Open/Algorithm Competition.