В последнее время внимание болельщиков спортивного программирования всего мира приковано к двум параллельно проходящим событиям мирового масштаба: ACM International Collegiate Programming Contest: World Finals и начавшемуся TopCoder Open 2007 (финал которого состоится летом 2007 года).
Так что же представляют из себя эти два мировых первенства и с "чем их едят" :)?
Чемпионат TopCoder Open является одним из самых престижных чемпионатов для всех желающих посостязаться в скоростном индивидуальном алгоритмическом программировании.
Наиболее существенным преимуществом, которое выгодно выделяет ТопКодер среди остальных соревнований - это отсутствие ограничений на число поездок на онсайт-финалы. Да и по числу ежегодных "выездных" контестов - ТопКодер явный фаворит. Начиная с 2001 года, проводится два типа ежегодных первенств: TopCoder® Collegiate Challenge и TopCoder® Open (с 2003 года заменивший TopCoder® Invitational). Кроме этого, начиная с 2002 года, под эгидой Топкодера каждый год организуются Google Code Jam соревнования. Помимо мирового, "глобального" Google-первенства (GCJ), проводятся Google Code Jam Latin America, Google Code Jam Europe, Google Code Jam India, Google Code Jam China.
Получается, к примеру, что, при определенной доли везения, аспирант-европеец имеет возможность поучаствовать сразу в четырех первенствах за год: TCO, TCCC, GCJ и GCJ Europe. Для трех из них даже не требуется обучение в аспирантуре.
На все эти соревнования участникам оказывается визовая и финансовая поддержка. За счет организаторов покрываются транспортные расходы, бронируются и оплачиваются отличные номера в одних из лучших гостиницах. То есть, фактически, всё что требуется от счастливчика-финалиста - это получить письмо-приглашение, оформить визу, выбрать и сообщить детали предпочитаемого маршрута (даты, время, авиарейсы..).
ТопКодер не налагает ограничений на число участников от одного ВУЗа. Для участия не обязательно являться студентом или аспирантом. Единственное ограничение - контестанты должны быть не младше 18, либо от 13 до 20 для участия в TCHS.
Механизм отбора финалистов ТС контестов выглядит предельно просто. Желающим только необходимо зарегистрировать свой персональный аккаунт на сайте http://topcoder.com/tc и слегка разобраться со средой, в которой проводятся соревнования (TC Arena).
Турнир обычно делится на отборочные этапы (как правило с возрастанием уровня сложности). Первый этап - Qualification round и около 2-4 Online Elimination раундов. Qualification round - контест открытый для участия в течении 24 часов, длящийся 60 минут, и как правило, с 2 задачами и отсутствием челлендж фазы. Online Elimination Round проводятся по правилам обычного Single Round Match (час 15 минут и 3 задачи на Coding Phase, перерыв, Challenge Phase). И чтобы поучаствовать во всем нужен всего лишь компьютер с выходом в Интернет. Никаких организационных вопросов, только сплошная самоорганизация, никаких взносов, для уплаты которых приходится сталкиваться с какой-никакой банковской бюрократией. Любой, "сегодня" решивший увлечься спортивным программированием, "завтра" может участвовать в ТС Tournament Rounds, а "послезавтра" попасть на онсайт.
Кроме этого, для непосредственного решения задач, в распоряжении находится всё, что только позволяет совесть :). За конкурсантами отсутствует физический контроль. И при желании любой может прибегнуть к "читерским" уловкам: использовать дополнительный компьютер, заранее подготовленные и написанные алгоритмы, Интернет-источники.... :) Это одновременно плюс и минус. Отсутвуют "декларированные" ограничения на честную спортивную борьбу, но однако - все в равных условиях, и вы, к примеру, не проиграете важнейший для себя турнир из-за того что банально забыли теорему Пифагора :)
На онсайт-финале участники разбиваются на три SemiFinal комнаты по 16 человек в каждой. Соревнования для каждой комнаты проходят в течение двух дней. Из каждой двое лучших проходят в Championship Round, а участники занявшие следующие 4 места отбираются, чтобы состязаться в дополнительном полуфинале - WildCard. Двое лучших WildCard-истов также проходят в финал, в котором в итоге состязаются 8 участников.
На финале, на онсайте, для конкурсантов имеет значение каждая секунда соревнования, каждое действие, каждая мысль и идея. И борются они не только за звание чемпиона или вице-чемпиона, а также за $25000, $10000, $5000 или хотя бы просто за $1000. На ТС-онсайтах на финалистов обращены взгляды не только болельщиков со всего мира, но и крупнейших работодателей с мировыми именами, охотников за талантами и умами. Акулы-работодатели спешат прособеседовать каждого достойно проявившего себя и стремятся заманить лучших в сети своей фирмы.

На несколько вопросов о турнирах ТС согласился ответить Олексий Орешко - проблем-координатор TopCoder.
Олексий, что ты относишь к основным достоинствам ТопКодер-соревнований, выделяющим его на фоне других конкурсов по спортивному программированию?
Прозрачность - все решения и тесты доступны на нашем сайте, администрация активно участвует в обсуждениях в форуме. Доступность для участия - малая длительность соревнования, возможность писать на любом языке. Соревновательный эффект - таблица результатов непрерывно меняется, челлендж-фаза дает возможность своеобразной «дуэли», а систем тесты держат интригу до самого конца (тогда как в остальных соревнованиях, как правило, команда знает свой точный результат в любой момент времени).
Какие недостатки существуют сейчас в самой системе проведения алго-раундов, марафонов, либо в процессе подготовления контестов, если таковые имеются?
Мне неизвестны недостатки, поскольку, как только они становятся известны, мы их устраняем:)
Считаешь ли ты, что задачи, предлагаемые на ТопКодере, во многом отличаются от задач АСМ-соревнований? Должны ли они отличаться?
Отличие, в первую очередь, обусловлено длительностью и правилами проведения соревнований. В соревнованиях АСМ допустимо дать задачу, на решение которой может потребоваться пара часов (поскольку, например, в 5-ти часовом контесте участники имеют 15 человеко-часов времени, тогда как в одном СРМе - только 75 минут).
Какого плана контесты тебе интереснее решать как участнику - SRM с 3 задачами и 75 минутами времени либо 5-часовые с 9-12 задачами?
99% решенных мною задач и проведенных соревнований приходится на ТопКодер (и ТТБ, который с ТС очень схож), в то время как мой опыт участия в АСМ ограничен буквально 5-6 соревнованиями - поэтому мне и непросто сравнить. Сейчас у меня просто нет возможности решать 5-часовые контесты чаще нескольких раз в год, так что вопрос выбора на повестке дня не стоит.
Каков взгляд изнутри - как позиционируется ТопКодер сейчас: как соревнование профессионалов, как система «для всех», стремящаяся охватить школьников, студентов, аспирантов, отучившихся?
ТопКодер всегда был более демократичным и удобным для участия, чем АСМ-подобные соревнования - из-за лимита времени, формата, в котором даются условия (не надо ничего читать из файлов и угадывать где же опечатка в формате ввода), сложности задач, да и просто того факта, что соревнования личные, а не командные. Мы и дальше расширяемся - только в последнее время добавилось несколько новых типов соревнований, так что каждый может найти себе формат (или форматы) по вкусу.
На что главным образом делается акцент в системе ТопRодеровских состязаний - общие алго-раунды, TCHS и другие контесты для учащихся, марафон матчи, Software Development/Design Contests и дизайн, Software Testing, Studio Contests?
Мы делаем акцент на всем, что проводим - ведь если что-то является неважным для нас, то зачем вообще его проводить?
Если бы у тебя был выбор - являться координатором/организатором контестов по системе ТопКодер и по системе АСМ, что бы ты выбрал?
Я очень доволен своим нынешним местом работы и менять его не собираюсь:) Тем более, что я не в курсе, есть ли вообще постоянная (а не от случая к случаю) работа у координаторов АСМ соревнований.

Международная организация Association for Computing Machinery (ACM) была основана в 1947 году в Филадельфии сотрудниками Пенсильванского университета, создавшими один из первых программируемых компьютеров ENIAC. В настоящее время ACM является одной из наиболее авторитетных международных организаций в области компьютерных технологий. В ассоциацию входят около 170 региональных отделений и более 500 отделений в университетах и колледжах занимающихся различными проблемами Computer Science. ACM проводит конференции, издаёт журналы и книги, присуждает различные премии за достижения в области теоретической информатики и компьютерных технологий - в частности, знаменитую ACM Turing Award. Ну и помимо этого проводит мировое первенство за звание лучшей студенческой команды программистов.
Первые соревнования, отдалённо напоминающие современный чемпионат ACM, состоялись в 1970 году в Техасском "A&M" университете . Соревнования 1977 года считаются первым чемпионатом мира ACM - именно в этом году они впервые были организованы по многоуровневой системе, а финал состоялся в рамках конференции ACM Computer Science Conference. С 1977 по 1989 году в чемпионате в основном участвовали команды вузов США и Канады. Затем в 1989 году руководство чемпионатом переместилось в университет Бэйлор (Baylor University), и с этого момента началось создание региональных полуфиналов во всём мире. В целом, как видно по годам, АСМ можно признать прародителем соревнований по спортивному программированию, а всех остальных считать продолжателями столь превосходной идеи.
Сегодня путь к финалу - довольно сложная дорога, подчас насыщенная организационными, бюрократическими, финансовыми проблемами. Осмелюсь предположить, что все помнят историю, как команда Нижегородского университета, выигравшая поездку на финал, не смогла поехать из-за финансовых проблем, и помимо этого была дисквалифицирована в будущем - "за неуважение к финалу". АСМ придерживается правил, что расходы, связанные с отправкой на финал команды должен нести ВУЗ, от которого она выступает. Для России же очевидна проблема невозможности финансирования со стороны ВУЗов, которая вытекает в поиски спонсоров, клянченье денег и т.п. И если бы не наличие у команд руководителей и тренеров, эта забота легла бы на плечи самих финалистов.
Для многих команд, сейчас все начинается с четвертьфинальных (подрегиональных) соревнований, победители которых получают право участвовать в полуфинальных (региональных) соревнованиях, в свою очередь, победители которых получают путёвку в финал. Иногда, возможности участия в четвертьфинале предшествует серьезный внутривузовский отбор. На который, иногда, накладываются отпечатки студенческой успеваемости и ВУЗовской репутации учащегося...
Финальные соревнования являются завершением соревновательного сезона и представляют собой четырёхдневное мероприятие, проходящее при непосредственном участии генерального спонсора. В течение четырёх дней, кроме самих соревнований и церемонии награждения, для команд-участников проводятся презентации, конференции и турнир по программированию Java Challenge. К сожалению, по сложившимся техническим и организационным обстоятельствам в этом году Java Challenge не проводился :( Что касается огромного количества презентационных мероприятий: симпозиумов, форумов, ТехТреков, в большинстве своем они выходят довольно скучными, интересными далеко не всем. Возможно, организаторами в этом плане допускаются некие просчеты с целевой аудиторией, либо с темами, освещаемыми на данных мероприятиях.
Java Challenge - одно из увлекательнейших мероприятий финала. Проводимый при поддержке спонсоров, он является с некоторой стороны "тестовым полигоном" технологий и мощностей (в первую очередь для IBM Research Laboratory ). К примеру, в 2005 году Java Challenge испытывал и рекламировал IBM Blue Gene .
Java Challenge дает участникам возможность пописать искусственный интеллект, решая параллельно сложные задачи в области физики, инженерии, биологии, геологии и т.д. Главной спецификой Java Challenge признается отсутствие тестирующего механизма, решения команд напрямую состязаются с решения соперников. Победитель выявляется по установленным критериям оценки. Естественный отбор :) По правилам финала результаты Challenge никак не учитываются для основного соревнования.
Если говорить о правилах проведения непосредственно контестов в рамках World Final Championship - то это "стандартные" привычные "правила АСМ ", которые столь часто везде фигурируют. 5 часов, три человека, один компьтер и порядка 10 задач. Однако при ближайшем рассмотрении стоит заметить, что в этих правилах присутствует некая нестабильность. Или же изменчивость? Постоянно меняются квоты участия, вносятся ограничения на ВУЗы, на регионы, на возраст и курс участников, на количество разрешенных разов участия, добавляются\отнимаются возможности связаные с поведением команды непосредственно на контесте, и т.д. и т.п. Таким образом, возникает необходимость все время отслеживать изменения, внимательно разбираться в правилах.
Одну из главных "фишек" соревнования - "frozen monitor" можно отнести как к плюсам, так и к минусам. Ведь так порой хочется узнать всё немедленно и сразу. С другой стороны, чем дольше ждешь тем приятнее долгожданный момент. Есть возможность погадать, поприкидывать, еще раз перечитывать и перечитывать задачи, ставить себя на место участников... В этом что-то есть!
На несколько вопросов о финале чемпионата мира ответил исполнительный директор ACM ICPC Уильям Пучер
Билл, что для вас чемпионат мира АСМ?
В действительности, это то, что мы делаем, чем занимаемся. Мы предоставляем наиболее талантливым студентам со всего мира возможность собраться вместе. АСМ-финал в первую очередь - сообщество, объединенное духом соперничества, высших способностей, лучших технологий, легких и тяжелых решений. Это то, что мы стремимся открыть людям, чтобы в будущем используя то, что мы наработали и сделали - создать технологически богатое, социально объединенное (единое) общество будущего.
Почему мировое первенство обращено и направлено в первую очередь на студентов университетов и колледжей?
Мы смотрим в будущее. Создаем фабрику свежих идей, энергии и таланта. Как я полагаю, решить одну из предоставленных задач на World Final Contest-е - это порой труднее, чем выпустить несколько научных работ или написать отчет о семестре работы в колледже. Студенты, участвуя в контексте, могут проделать в 30-40 раз большую работу, чем способен профессиональный разработчик за такое же время. Это очень ценно. Мы ценим чувство соперничества и вовлеченности. Профессиональные же разработчики ориентированны на цели иного плана.
Что сегодня является отличительной, главной чертой Чемпионата Мира, что его выгодно отличает?
Мы стремимся моделировать задачи, базируясь на актуальных, современных мировых бизнес-требованиях. Моделируем дух вовлечения в решение насущных задач. Хотим соответствовать моменту. Используем открытые стандарты, платформы, инструменты. Сегодня существует тенденция к распростанению открытых стандартов, это помогает в конкурентной борьбе. Первенство мира ориетировано на программистов, которые способны делать то же самое, могут и хотят делать лучше. Мы нацелены на помощь им в этом. И помимо этого чимпионат является командным, принцип единения и общности - главенствующий для нас. В духе него мы делаем все.
В заключение беседы г-н Пучер поблагодарил за проявленный интерес, за то, что нашлась возможность связаться с ним и пообщаться на тему финала. Отметил, насколько он всё это ценит и как он горд достижениями европейских (российских) студентов в олимпиадах. Сказал, что надеется, что в будущем команды из России будут еще успешнее, и пожелал всем удачи!
Для болельщиков спортивного программирования, привыкших и любящих следить за чемпионатами, каждые 5 секунд нажимать F5 в окнах со стендингзами, ходить из "комнаты" в "комнату" на ТС, волноваться не меньше самих участников, радоваться и расстраиваться вместе с ними... Для таких - дорого и памятно, пожалуй, каждое соревнование. И каждый сам решает, что ему больше нравится: интрига ожидания разморозки монитора, накал страстей от сабмита к сабмиту, подсчеты штрафных баллов, труднейшие задачи, над которыми можно часами ломать голову. Или же молниеносность, невероятная скорость, задачи, решаемые за минуты, фактически без права на ошибку, азарт поиска ошибок в решениях соперников, и т.д.
Для тех кто болеет и тем более участвует - наверняка по большей части важно не то, "как, что и где", а сам дух борьбы, эйфория спортивного состязания, испытание на прочность и выносливость, а также прекраснейшие моменты радости за свои и чужие достижения!
Джерело: Test The Best (ttb.by)