Pull to refresh
VK
Building the Internet

Чемпионат по программированию Russian Code Cup 2012: как это было

Reading time 10 min
Views 21K
В минувший понедельник завершился уже второй по счету пятимесячный марафон Russian Code Cup 2012. Первое место занял Владислав Епифанов из Нижнего Новгорода, сохранив первую позицию с отборочного и квалификационного туров, второе место заняла Наталья Бондаренко, доцент Саратовского государственного университета — одного из лидеров в подготовке программистов высочайшего класса. В этом году третье место занял Егор Куликов. Поздравляем победителей!



Подарки розданы, призы вручены, дипломы подписаны, и теперь самое время рассказать, как это было.

UPDATE:
Небольшой отчетный видеоролик c Russian Code Cup 2012.







Цифры и факты



  • В Russian Code Cup 2012 участвовало более 3000 русскоязычных программистов со всего мира. В этом году россиян на чемпионате было большинство — 65%, а остаток приходился на Украину (15%), Белоруссию (9%), страны бывшего СССР, Европу и США. В прошлом году из России была ровно половина участников, а украинцев и белорусов было побольше (20% и 14% соответственно). Россия уверенно держит первое место в мире по числу побед — за последние 13 лет наши университеты на чемпионате мира ACM ICPC занимали первые места семь раз, оба Facebook Hacker Cup брали российские программисты, а на нашем Russian Code Cup как в этом, так и в прошлом году первые три места делят выпускники отечественных вузов.
  • В 2012 году участвует 25 финалистов прошлого года — ровно половина. То, что половину сильнейших составляют «свежие лица», не может не радовать. Принцип отбора в финал из тысяч участников начисто лишен человеческого фактора — мы до последнего момента ждали сюрпризов в составе финалистов.
  • В финале удалось собрать лучших из лучших не только по нашим собственным критериям. Так вот, на финишную прямую Russian Code Cup 2012 без всяких wildcards попали лучшие русскоязычные программисты как по рейтингу TopCoder, так и по рейтингу Codeforces. Из десяти первых русскоязычных программистов в рейтинге TopCoder все десять — участники Russian Code Cup 2012, и, более того, все прошли в финал (кроме Геннадия Короткевича — ему не исполнилось 18 лет, а у нас ограничение по возрасту снизу). Из 30 лидеров Codeforces чуть более половины — русскоязычные программисты, и почти все они прошли в финал Russian Code Cup 2012.

    Эти факты одновременно подчеркивают как корректность рейтингов TopCoder и Codeforces (в чем, в общем-то никто не сомневается), так и справедливость еще «молодого» рейтинга Russian Code Cup.


А теперь о самом турнире



Есть проверяющая система, созданная и поддерживаемая нашими соорганизаторами — НИУ ИТМО. Работает она как сервис — на вход получает программу, компилирует ее, запускает, пропускает на ней серию тестов и, если все тесты проходят, отмечает решение задачи и фиксирует время и автора этого решения. Ее стабильность обеспечивалась специалистами ИТМО и опыт предыдущих соревнований показывал ее идеальную отлаженность. Ну это не удивительно: систему писали чемпионы мира по программированию. Система используется, конечно, не только на Russian Code Cup.

Сам сайт RussianCodeCup.ru помимо прочего является интерфейсом работы с этой системой. Поскольку квалификации и полуфиналы проходили в онлайне, главной задачей тогда было удержание сайта в работоспособном состоянии. Для финала сайт был перенесен в облако, а для финалистов был открыт отдельный сайт, закрытый во внешнюю сеть. Это позволило поднять уровень надежности информационной системы и закрыть ряд технических рисков.

Мероприятие проходило в конференц-центре Swissotel в Москве, а в самом отеле проживали участники и жюри.

Мы намеренно позиционируем Russian Code Cup 2012 как первенство среди русскоязычных программистов, в отличие от ряда других международных турниров, где английский является основным, а ограничений по географии нет.

За день до турнира специалисты и менеджеры Mail.Ru Group рассказывали о технических задачах, решаемых в компании. Темы докладов были релевантны знанию и опыту слушателей — это и машинное обучение от руководителя отдела ранжирования Алексея Воропаева и аналитика Mail.Ru Group Эдуарда Тянтова, и особенности построения игровых объектов от технического директора и главы команды игровой механики Аллоды Онлайн Ильи Вайсмана. Про свой опыт рассказали руководитель разработки Tarantool Константин Осипов и CIO Mail.Ru Group Александр Горный. Открывал Russian Code Cup для финалистов генеральный директор Mail.Ru Group Дмитрий Гришин.

Трансляция, техника, интернет и другие организационные моменты



Russian Code Cup 2012 сопровождался видеотрансляцией — ее можно было посмотреть как на сайте турнира, так и по ссылкам с главной страницы Mail.Ru.

Прямая трансляция турниров по программированию — довольно непривычный для интернета формат. Для «непосвященных» то, чем занимаются ребята в закрытом зале конференц-центра — темный лес. Организовать прямую трансляцию, сохраняя зрелищность и информативность для самой широкой публики — непростая задача. Ведь актуальная рейтинговая таблица и так всегда доступна на сайте в отдельном разделе, а типичная картинка из зала, где проходит турнир — сосредоточенные лица участников, освещенные экранами ноутбуков.

Поэтому основным наполнением эфира у нас были интервью, дискуссии, круглые столы — с жюри, с приглашенными гостями, а также включения в эфир рейтинговой таблицы с комментариями специалистов.

Мы столкнулись с проблемой задержки видеосигнала в эфире (от нескольких секунд до минуты). Для интервью это не создает никаких проблем, но для рейтинговой таблицы это важно — ведь данные в ней должны быть актуальны на момент ее демонстрации. Идеального решения этой проблемы практически не существует, в первую очередь из-за особенностей самой технологии вещания в сети, но разными способами можно заметно сократить эту задержку.

Второй проблемой было использование инфографики в видеопотоке. Большинство пользователей не разворачивают видеотрансляцию на полный экран, и добиться удовлетворительной читаемости текста (фамилий, баллов, ников) в относительно низком разрешении и при характерном для видео сжатии с сохранением привычного вида таблицы оказалось непросто. Мы справились с этим, упростив дизайн и разбив таблицу на слайды.

Для решения этой проблемы гораздо более подошла бы технология сборки видео на «клиенте», когда в нужный момент по команде режиссера в поток включается качественная фотография или векторное изображение, а в итоге пользователю приходит изображение таблицы или схемы, не содержащее характерных для видеокодеков артефактов. Пока подходящих решений для такой задачи мы не нашли, буду рад любым советам и предложениям.

В завершение про трансляцию: видеоролики и фотографии с мероприятия уже можно посмотреть на сайте Russian Code Cup 2012.



Вторым потенциально узким моментом мог стать интернет на площадке. Ведь если отключится сеть, турнир придется приостанавливать, а то и завершать. Чтобы быть спокойным на этот счет, была построена трехуровневая система резервирования, включающая переключение кабельного интернет на Wi-Fi, а на случай выхода из строя и его — на 4G. За два часа до финала с интернетом действительно стали происходить чудеса, и мы уже было стали потихоньку включать резерв, но все обошлось, и ко времени начала турнира интернет полностью восстановился.

Резервировалась необходимая оргтехника, было проработано быстрое масштабирование регистрации в случае необходимости. К счастью, ни один из заложенных рисков не сработал, и все прошло гладко.

Содержательная часть: круглые столы и панельная дискуссия



Пока собирались гости, в студии активно шло обсуждение актуальных проблем в области IT.



На «круглом столе», посвященном вопросам спортивного программирования, обсуждали идею создания общероссийской федерации спортивного программирования. Ведь существуют же общероссийские спортивные федерации го, айсштока, дартса, городошного спорта, спортивного ориентирования или софтбола. Интересно, что в перечень обязанностей любой спортивной федерации входит требование «участвовать в предотвращении допинга в спорте и борьбе с ним, а также в противодействии проявлениям любых форм дискриминации и насилия в спорте». Очень надеемся, что спортивному программированию проблема допинга в ближайшие годы угрожать не будет.

На панельную дискуссию были приглашены Министр по связи и массовым коммуникациям Николай Никифоров, ректоры Владимир Васильев (НИУ ИТМО) и Анатолий Александров (МГТУ им. Баумана). Вместе с генеральным директором Mail.Ru Group Дмитрием Гришиным гости в ходе обсуждения подняли вопросы качества IT-образования в России. Так удалось услышать точку зрения на проблемы подготовки ИТ-кадров всех трех сторон — государства, образования и бизнеса. Эту дискуссию в полном виде можно посмотреть на официальном сайте RussianCodeCup.ru



Интерактивные развлечения на площадке и культурная программа



Для гостей Russian Code Cup мы организовали несколько IT-развлечений. Например, вот такие сферо-гонки — нужно провести управляемый iPhone/iPad шарик Orbotix Sphero по трассе и прийти к финишу первым.

Сам шарик связан с планшетом или телефоном по Bluetooth. По команде с мобильного устройства можно произвольно менять направление движения. Злые языки говорят, что во всем виноват раскручиваемый батарейками маховик, но мы-то знаем, что на самом деле внутри него сидит маленький хомячок с электродами.



Среди других интерактивных развлечений — например, видеостена, добавляющая остроумные высказывания по ИТ-тематике «в пузырях» поверх живой картинки из зала. добавляющая к всем проходящим умную мысль, или аналогичная видеостена, на которой движениями рук можно было нарисовать несложный рисунок.

А в завершение дня, на яхте, перед развлекательной программой, все желающие могли узнать много нового про разработку под робототехнический набор LEGO Mindstorms NXT 2.0 — подарок от Mail.Ru Group всем финалистам Russian Code Cup. Показывали и рассказывали тренер команд по спотивной робототехнике международного уровня Владимир Ефграфов и призер международных робототехнических соревнований Анатолий Вождаев. Вместе с этим конструктором ребята получили еще и книжку Джона Хансена «LEGO Mindstorms NXT Power Programming: Robotics in C». Кто знает, может быть, мы увидим кого-нибудь из них еще и на Евроботе?..

Сильнейшие программисты и их трофеи



Первое место в Russian Code Cup 2012 занял Владислав Епифанов. Стоит отметить, что он стабильно и уверенно занимал первые места в отборочном туре и в квалификационном. В финале он оказался единственным, решившим пять задач. Для него Russian Code Cup 2012 — первая серьезная победа, но не первый серьезный опыт: Владислав — дважды финалист Google Code Jam, а в прошлом году занял пятое место в Russian Code Cup 2011. В мировом рейтинге TopCoder Владислав занимает шестнадцатое место. Кроме абсолютной победы в Russian Code Cup 2012 мы его отметили также как первого из всех финалистов, решившего задачи C и F. Задача F была довольно сложной, с ней справились всего пять человек. Владислав получил первый приз — 10000 долларов США.



В этом году второе место заняла Наталья Бондаренко. У нас всего две девушки в финале, и выход в первую тройку одной из них был для всех сюрпризом. Поздравляем еще раз Наталью, она — молодец! Незадолго до окончания турнира прошел круглый стол, посвященный спортивному программированию, где Михаил Мирзаянов рассказывал о Наташе:

«С Наташей Бондаренко я знаком уже много лет. Я вел кружок в одной из саратовских школ, и она пришла туда ко мне, будучи еще восьмиклассницей. Поэтому я не удивлен видеть ее на второй строчке, зная о ее уровне знаний, о ее уровне подготовки. Она много лет тренировалась в центре олимпиадной подготовки в Саратове, еще школьницей у нас занималась. Она была капитаном в одной из сильнейших команд. Она стала чемпионом России, победив в полуфинале в Петербурге в 2008-м году, а в 2009-м они заняли четвертую строчку в финале чемпионата мира. Хочется отметить ее яркий успех — закончив университет, она ровно через полгода защитила кандидатскую диссертацию, став кандидатом физико-математических наук. Я был у нее на защите, совет говорил очень лестные слова о ее работе. Звучало это примерно так: ученые с громкими именами с Украины решили такой частный случай, а в Новосибирске другими учеными был решен другой частный случай, а Наташа решила эту задачу целиком, тем самым полностью закрыв вопрос по ней и ее решению».




Третье место взял Егор Куликов. Егор был одним из фаворитов RCC, проходил в финалы пяти Google Code Jam, а в одном из них, два года назад, занял первое место.



Стоит отметить Евгения Капуна — двухкратного чемпиона мира ACM-ICPC (в составе команды от НИУ ИТМО). Евгению удалось единственному из всех финалистов решить одну из сложнейших задач турнира — задачу Е.



Планы на RCC 2013



Вероятно, уже в следующем году мы не только проведем Russian Code Cup 2013 в новом месте (в новом офисе Mail.Ru Group), но и в несколько измененном формате. Вероятно, добавится «марафонский» зачет, с «длинными», более практическими задачами вокруг веб-технологий, алгоритмистики, и, может быть, даже элементами системного программирования. Возможно, сами задания мы сделаем предметом отдельного конкурса, а участие в таком зачете сделаем командным. Возьмем что-то лучшее с Challenge24. Добавим игровой раунд — наподобие ACM-ICPC Challenge. Что думаете вы?

Спасибо.

Спасибо за участие, причастным — за содействие. Следующий пост про Russian Code Cup будет длиннее и сложнее — мы очень детально разберем все задачи с турнира.

Команда Russian Code Cup

P.S. Небольшой анонс. Ровно через месяц, 17 октября, у нас начинается второй в этом году Форум Технологий 2012. Регистрация открыта, участие бесплатное, но количество мест ограничено. Кроме специалистов Mail.Ru в программе западные спикеры из Opera, AJAX.org  и других компаний. Рассказы о прошлых Форумах — осеннем и весеннем.
Tags:
Hubs:
+40
Comments 22
Comments Comments 22

Articles

Information

Website
vk.com
Registered
Founded
Employees
5,001–10,000 employees
Location
Россия
Representative
Миша Берггрен