Google Code Jam

Логотип Google Code JamGoogle Code Jam — международное соревнование по спортивному программированию, проводимое корпорацией Google. Впервые прошедшее в 2003 году, соревнование с каждым годом становится всё популярнее. Участникам предлагается решить несколько алгоритмических задач за фиксированное время. В отличие от большинства других соревнований по программированию, в Google Code Jam участники могут использовать любой язык программирования и среду разработки для решения задач.

Язык соревнований - только английский. Для участия нужно иметь Google-аккаунт и зарегистрироваться в квалификационном раунде.

Правила

Соревнование состоит из нескольких этапов (ангд. round). Первый этап - квалификация (Qualification Round). Все зарегистрированные участники получают набор задач для решения. Квалификация длится 24 часа, участникам необходимо решить максимальное число задач. Правильность решения проверяется тестами. В каждой задаче есть две подзадачи: Small input и Large input. Каждая из них оценивается по своей системе и может быть либо решена полностью (тогда Вы получаете некоторое количество баллов), либо не решена вообще (получаете ноль баллов). Победители, проходящие в следующий раунд, определяются по количеству набранных баллов и штрафному времени, причём баллы имеют большую ценность. Штрафное время считается как время последней отправки ответа на задачу, которая принесла баллы, плюс 4 минуты за каждый неверный ответ в Small input. Для того чтобы попробовать сдать подзадачу, надо нажать соответствующую кнопку. Появится окно с запросом на скачивание файла - это тесты. После нажатия на кнопку у Вас будет 4 минуты, чтобы запустить программу, пройти тесты и загрузить в систему ответ и код. Во время раунда можно задавать вопросы при помощи кнопки "Ask a question" под списком задач.

Online Rounds 1

Следующим этапом после квалификации является Online Rounds 1. Для прохода в него требуется набрать хотя бы 25 баллов в квалификационном раунде, что меньше, чем суммарный балл по всем Small Input. Этап Online Rounds 1 на самом деле состоит из трёх раундов, проводимых в разное время в соответствии с расписанием. Участники, прошедшие в Online Rounds 1, могут соревноваться в любом из трёх раундов для выхода в Online Round 2. Участникам снова предлагается решить несколько алгоритмических задач за отведенное время. Лучшие 1000 участников по итогам каждого из трёх раундов первого этапа проходят в Online Round 2. Те участники, которые прошли по итогам первого или второго раунда, могут не принимать участие в следующих раундах текущего этапа соревнований.

Online Round 2 and 3


Лучшие 3000 участников по итогам Online Rounds 1 будут уведомлены по электронной почте о возможности участвовать в Online Rounds 2. Этот этап соревнований обычно длится два с половиной часа. Участникам предлагается решить несколько алгоритмических задач за отведенное время. Лучшие 500 участников проходят в Online Round 3. Он проходит по тем же правилам.


Onsite Final Round


Лучшие 25 участников по итогам Online Round 3 приглашаются для участия в Onsite Final Round, который проходит в офисе корпорации Google в Нью-Йорке, США. Стоимость поездки и все расходы корпорация берет на себя. В ходе Onsite Final Round участникам также необходимо решить предложенные задачи, но на этот раз - используя только предоставленные корпорацией компьютеры и ПО (исключение: участникам разрешается использовать собственную клавиатуру). Победители финального этапа соревнований получают ценные призы, денежное вознаграждение и возможность трудоустройства в корпорацию Google.


Подробные правила