Правила

1. Условия

В конкурсе можно участвовать с 6 лет. Участники, которым на момент объявления о начале конкурса не исполнилось 18 лет, а также сотрудники ООО «ЯНДЕКС» или аффилированных компаний, их близкие родственники и организаторы конкурса, могут выступать только в Квалификационном и Отборочном этапах Алгоритмического трека, а также в Оптимизационном и ML-треках, но не в Финальном раунде Алгоритмического трека. Сотрудники ООО «ЯНДЕКС» или аффилированных компаний, их близкие родственники и организаторы конкурса, а также несовершеннолетние участники конкурса, не могут быть признаны победителями конкурса и не вправе претендовать на получение призов.

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

2. Регистрация

Для участия в конкурсе необходимо зарегистрироваться. Организатор оставляет за собой право дисквалифицировать участника, сообщившего при регистрации заведомо ложные сведения о себе. Регистрация будет открыта 7 февраля 2018 года в 12:00 по московскому времени (UTC+3). Для участия в Алгоритмическом треке Участники вправе пройти регистрацию до окончания Квалификационного этапа Алгоритмического трека; для участия в Оптимизационном и (или) МL-треках Участники вправе пройти регистрацию в любой момент до завершения этих треков.

Система оценки раундов Алгоритмического трека: TCM/Time.

3. Структура конкурса. Проведение Алгоритмического трека

Конкурс состоит из трёх треков: Алгоритмического, Оптимизационного и ML-трека.

Алгоритмический трек состоит из шести раундов, для каждого подготовлены оригинальные задачи. Время начала указано по московскому времени (UTC+3). Алгоритмический трек состоит из Квалификационного этапа, Отборочного этапа и Финального раунда. В Отборочный этап пройдут все участники, сдавшие хотя бы одну правильно решённую задачу на Квалификационном этапе.

Квалификационный этап состоит из Разминочного раунда и Квалификационного раунда. Разминочный раунд начнётся 11 февраля 2018 в 20:00 и продлится 100 минут. Все участники стартуют и финишируют одновременно. Те из них, кто сдал хотя бы одну задачу, сразу попадают на Отборочный этап.

Квалификационный раунд начнется 17 февраля 2018 в 00:00 и продлится 48 часов. В этот период каждый зарегистрированный участник может стартовать в удобное для себя время. Для этого нужно перейти по ссылке «Приступить» — в момент её нажатия для участника начинается 100-минутный раунд. Все участники, сдавшие хотя бы одну задачу, попадут на Отборочный этап.

Отборочный этап начнётся 3 марта 2018 в 10:00. Отборочный этап состоит из трех раундов. Они оцениваются отдельно по системе «гран-при 30»: тридцать лучших участников каждого раунда получают зачетные очки в соответствии с приведенной ниже таблицей.

Место 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Очки 100 75 60 50 45 40 36 32 29 26 24 22 20 18 16
Место 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Очки 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

Если несколько участников имеют одинаковый результат, зачетные очки делятся между ними поровну.

Первый раунд Отборочного этапа начнётся 03 марта 2018 в 10:00

Второй раунд Отборочного этапа начнётся 13 марта 2018 в 21:00

Третий раунд Отборочного этапа начнётся 08 апреля 2018 в 15:00

Результат Отборочного этапа включает два значения: сумму зачетных очков и наименьшее занятое место за три раунда.

Участник располагается выше в итоговой таблице Отборочного этапа, если имеет:

  • больше зачетных очков;

  • меньшее минимальное занятое место за три раунда отборочного этапа при равенстве зачетных очков.

В Финальный раунд попадают 25 лучших участников Отборочного этапа, сдавших хотя бы одну правильно решённую задачу.

Организатор оставляет за собой право приглашать дополнительных участников в Финальный раунд, если кто-либо из уже отобранных претендентов отказывается. Дополнительные участники выбираются на основе результатов Отборочного этапа.

Финал конкурса пройдёт 19–20 мая по адресу: Российская Федерация, город Санкт-Петербург, Пискаревский проспект, д. 2, корпус 2, литер Щ. Каждый финалист должен подтвердить свое участие и представить все необходимые документы до 20 апреля. В противном случае он будет дисквалифицирован. Финальный раунд пройдет по правилам TCM/Time, длительность раунда будет между 120 и 180 минутами, объявлена непосредственно перед его началом.

4. Отправка и проверка решений в рамках Алгоритмического трека

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

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

Максимальное время прохождения теста указано в условии каждой задачи. Если этот лимит превышен, решение считается неверным.

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

Участник может отправлять решения на проверку «в открытую» или «втёмную». Для каждой задачи выбрать способ отправки решения можно только один раз. Результаты проверки решения задач отправленных «в открытую» доступны участнику сразу же.

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

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

Перечень возможных ошибок

Сообщение Сообщается ли номер теста? При сдаче «в открытую» При сдаче «втёмную» Возможная причина
OK Нет Решение зачтено Решение прошло все промежуточные тесты Программа верно работает на соответствующем наборе тестов
Compilation error Нет Компиляция программы завершилась с ошибкой Компиляция программы завершилась с ошибкой 1. В программе допущена синтаксическая или семантическая ошибка 2. Неправильно указан язык
Wrong answer Да Ответ неверен Ответ на один из промежуточных тестов неверен 1. Ошибка в программе 2. Неверный алгоритм
Presentation error Да Тестирующая система не может проверить выходные данные, так как их формат не соответствует описанному в условиях задачи Тестирующая система не может проверить выходные данные на одном из промежуточных тестов, так как их формат не соответствует описанному в условиях задачи 1. Неверный формат вывода 2. Программа не печатает результат 3. Лишний вывод
Time-limit exceeded Да Программа превысила установленный лимит времени Программа превысила установленный в условии лимит времени на одном из промежуточных тестов 1. Ошибка в программе 2. Неэффективное решение
Memory limit exceeded Да Программа превысила установленный в условиях лимит памяти Программа превысила установленный в условиях лимит памяти на одном из промежуточных тестов 1. Ошибка в программе (например, бесконечная рекурсия) 2. Неэффективное решение
Run-time error Да Программа завершила работу с ненулевым кодом возврата Программа завершила работу с ненулевым кодом возврата на одном из промежуточных тестов 1. Ошибка выполнения 2. Программа на C или C++ не завершается оператором return 0 3. Ненулевой код возврата указан явно

При возникновении ошибки «Compilation error» присланное решение не будет проверяться ни на одном из тестов, а участнику сразу будет сообщено об ошибке компиляции. Такая попытка не будет учитываться при последующем вычислении штрафа. При возникновении ошибок «Run-time error», «Memory limit exceeded» и «Time-limit exceeded» вывод программы не проверяется.

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

Промежуточные тесты следуют в том же порядке, что и в условиях задачи.

5. Подсчёт промежуточных и окончательных результатов в рамках Алгоритмического трека

Участники ранжируются по количеству принятых системой решений. Участники, решившие одинаковое количество задач, ранжируются по суммарному времени решения.

Суммарное время решения определяется как сумма времени решения и бонусов за сдачу «втёмную» для каждой принятой задачи.

  • При сдаче «в открытую» время решения задачи считается в секундах от начала раунда до момента отправки правильного решения плюс 20 штрафных минут за каждое не принятое системой решение.

  • При сдаче «втёмную» из времени решения вычитается n секунд, где n равно (количество нерешивших * продолжительность раунда в секундах) / количество участников, отправивших результат решения хотя бы одного задания в соответствующем раунде).

Задачи, не признанные решёнными к моменту окончания раунда, не учитываются при расчёте суммарного времени. Штрафные минуты за них также не начисляются.

В таблице текущих результатов правильные решения, отправленные «в открытую», обозначены знаком «+», после которого следует количество забракованных решений. Если задача сдана с третьей попытки, то в таблице будет стоять «+2», если с четвёртой попытки – то «+3», и так далее, если сразу — «+». Непринятые задачи обозначаются знаком −, после которого следует количество попыток.

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

По завершении раунда проходит проверка отправленных «втёмную» решений полным набором системных тестов. В таблице итоговых результатов те из них, что прошли системные тесты, обозначаются как «V», а не прошедшие — как «X».

6. Проведение Оптимизационного трека и ML-трека

Оптимизационный трек состоит из двух раундов.

Первый раунд Оптимизационного трека начнётся 5 марта 2018 г. в 10:00 и продлится до 10:00 12 марта 2018 года.

Второй раунд Оптимизационного трека начнётся 2 апреля 2018 г. в 10:00 и продлится до 10:00 9 апреля 2018 года.

В каждом из раундов участнику предлагается единственная задача, которая не предполагает наличие полного решения, но допускает множество подходов. Во время раунда происходит проверка представленного решения на предварительном наборе тестов. Участнику сообщается балл, набранный его решением на каждом из предварительных тестов, а также суммарный балл. Содержимое предварительных тестов скрыто от участников. Во время раунда участники ранжируются по суммарному набранному на предварительном наборе тестов баллу.

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

Процесс тестирования решения и определения итогов треков не отличается от описанного для Алгоритмического трека в разделах 3–4 настоящих правил.

ML-трек состоит из одного раунда, который начнется 30 марта 2018 г. в 10:00 и завершится 23 апреля 2018 г. в 10:00. Участники представляют результаты решения задания через тестирующую систему. Отправка результата решения задания должна быть завершена до окончания раунда, иначе он не будет принят. Результат должен быть отправлен в формате, который будет приниматься тестирующей системой. Участник может представить результат решения задания не более 100 раз за раунд и не чаще одного раза в час.

Для того чтобы претендовать для получения приза по результатам Оптимизационного и ML-треков, участникам, занявшим 1-е, 2-е и 3-е места, необходимо предоставить код решения, который воспроизводит полученные результаты, и письменное обоснование решений.

Участники не вправе каким-либо образом самостоятельно использовать датасет, представленный в рамках Оптимизационного и ML треков, за пределами конкурса, а именно: копировать, распространять, размещать в интернете. Участники отчуждают организатору конкурса исключительные права на код, созданный и представленный организатору в рамках Оптимизационного трека, в соответствии с п. 7.8. Положения о Конкурсе.

7. Призы

Участники, занявшие места с 1-го по 256-е на Отборочном этапе Алгоритмического трека либо с 1-го по 128-е в Оптимизационном или ML-треках, получают футболку с логотипом конкурса. Если один участник занял призовые места в нескольких треках, он получит только одну футболку.

Победители, занявшие первое, второе и третье места в Финальном раунде Алгоритмического трека, соответственно получают следующие денежные призы:

  • первое место — 300 000 рублей 00 копеек;

  • второе место — 150 000 рублей 00 копеек;

  • третье место — 90 000 рублей 00 копеек.

Победители, занявшие первое, второе и третье места в Оптимизационном треке, соответственно получают следующие денежные призы:

  • первое место — 100 000 рублей 00 копеек;

  • второе место — 70 000 рублей 00 копеек;

  • третье место — 50 000 рублей 00 копеек.

Победители, занявшие первое, второе и третье места в ML треке, соответственно получают следующие денежные призы:

  • первое место — 100 000 рублей 00 копеек;

  • второе место — 70 000 рублей 00 копеек;

  • третье место — 50 000 рублей 00 копеек.

Суммы денежных призов указаны за вычетом налога на доходы физических лиц (НДФЛ), который будет начислен и уплачен организатором в соответствии с законодательством РФ.