13 January 2011

Facebook Hacker Cup

Lumber room
Sandbox
Всем известно, что Facebook планирует провести соревнования Hacker Cup. И если сначала никакой конкретной информации по самому соревнованию почти не было, то сейчас есть вполне внятный FAQ и очень подробные и точные Terms & Conditions.

Я хотел бы по подробнее рассказать о Hacker Cup, который начинается 7 января.

Самый интересный вопрос:

Что нужно делать?


Каждый этап соревнования будет содержать три алгоритмические задачи. Для каждой задачи будут даны: условие, ограничения, форматы входных и выходных данных, а также файл со входными данными. В качестве решения нужно предоставить результат выполнения программы в виде файла с выходными данными, а также исходные тексты программ, использовавшихся для нахождения ответа.

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

Задачи можно решать и сдавать в произвольном порядке в течение всего времени соревнования.

Какое программное обеспечение можно использовать?


Писать можно на любом языке программирования по вкусу, с тем условием, что организаторы должны имет физическую возможность собрать и выполнить нашу программу (или несколько программ), используя IDE/компиляторы/системы сборки, которые существуют в свободном доступе. Особым пунктом идет разрешение на использование MS Visual Studio, так как в свободном доступе есть Visual Studio Express. Все исходные коды, использовавшиеся для решения должны быть отосланы одновременно с выходным файлом. В правилах разрешено решать задачи даже руками, при условии, что вместе с ответом присылается описание решения в текстовом файле.

Оценка результатов


Тут все стандартно. Задача решена правильно — получаем одно очко. Важный момент в том, что все задачи оцениваются одинаково, хотя по сложности они могут и различаться. Результат в соревновании — это количество правильно решенных задач. Если количество задач у участников совпадает, то смотрят штрафное время. Штрафное время — это время отсылки последней правильно решенной задачи.

Структура соревнования и поощрения


  • Квалификационный раунд начинается 7 января и будет длиться 72 часа. За это время нужно будет правильно решить хотя бы одну из предложенных задач. Еще раз замечу, что, во-первых, после скачивания входного файла у нас будет только 6 минут на отсылку ответа вместе с исходниками, поэтому забирать входной файл нужно только после того, как решение протестировано и есть уверенность в его правильности; а во-вторых, узнать правильно ли решена задача или нет, похоже, во время соревнования будет невозможно.
  • Первый раунд будет состоять из 3 отдельных подраундов, каждый из которых будет длиться 3 часа. Лучшая 1000 человек из каждого подраунда выходит во второй раунд соревнования. При этом участвовать можно хоть во всех трех подраундах, при условии, что вы еще не попали в Top-1000 в одном из предыдущих подраундов. Таким образом во второй раунд выходит 3000 человек.
  • Второй раунд будет длиться все те же 3 часа. Top-300 человек получат футболки, Top-25 поедут в Headquarters Facebook, в Palo Alto участвовать в финальном раунде.
  • Участникам финала оплачивается поезда, проживание, и всякая еда. И эти 25 счастливчиков будут бороться за обладание званием победителя Hacker Cup и довольно скромный призовой фонд (победитель получает $5000, второе место — $2000, 3-е — $1000, остальные по 100$).

Кто может участвовать


Ограничения таковы: участник должен быть зарегистрирован на Facebook. Ему должно быть как минимум 18 лет, он не должен являться сотрудником Facebook.

Размышления


В целом, Hacker Cup это тот же Google Code Jam, с примерно таким же призовым фондом.

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

Подведя итог, Facebook очень сильно упростили правила по сравнению с Google Code Jam. Допустим в гугловском соревновании, задачи могут оцениваться различным количеством баллов, для каждой задачи есть два набора входных данных, простой и более сложный, что позволяет выбрать соответствующий метод решения и получить различные очки за задачу. Но самое основное: в Google Code Jam, при выборе простого набора входных данных (но малое количество балов за решенную задачу соответственно), можно отправлять решение несколько раз, и сразу видеть, верное оно или нет. Таким образом можно минимизировать количество глупых ошибок.

Получается что Facebook Hackers Cup это нечто вроде «лайт версии» Google Code Jam (не удивительно если кто-то из гугловских организаторов сейчас работает в Facebook).
Tags:facebookhackers cupсоциальные проектыпрограммированиесоревнования
Hubs: Lumber room
+2
499 1
Comments 5
Popular right now
Введение в программирование
December 7, 202032,200 ₽Учебный центр Softline
Программирование на языке C (Си)
December 14, 202022,990 ₽Специалист.ру
SEO-специалист
December 7, 202064,900 ₽Нетология
Профессия iOS-разработчик
December 7, 202090,000 ₽SkillFactory