Яндекс. Алгоритм

Яндекс.Алгоритм-2017

Яндекс.Алгоритм-2016

Яндекс.Алгоритм-2015

Яндекс.Алгоритм-2014

1. Условия

В конкурсе можно участвовать с 6 лет. Участники, которым 21 мая 2016 года не исполнилось 18 лет, могут выступать только в разминочном, квалификационном и отборочных раундах, но не в финале конкурса и не имеют права участия в стажёрском треке. К участию не допускаются сотрудники Яндекса или аффилированных компаний и их близкие родственники, а также организаторы конкурса.

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

Для участия в конкурсе необходимо зарегистрироваться. Организатор оставляет за собой право дисквалифицировать участника, сообщившего при регистрации заведомо ложные сведения о себе. Регистрация будет открыта 20 апреля 2015 года в 0:00 по московскому времени (UTC+3) и продлится до конца квалификационного раунда.

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

Проведение турнира

Каждый раунд длится 100 минут. Проверка представленных решений проводится во время соревнований. Участники по мере готовности отправляют свои решения в тестирующую систему с помощью предоставленного программного обеспечения. При отправке решения участник выбирает, какой компилятор будет использован тестирующей системой, работающей под 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” вывод программы не проверяется.

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

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

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

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

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

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

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

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

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

По завершении турнира проходит проверка отправленных «втёмную» решений полным набором системных тестов.

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

4. Структура конкурса: гран-при 30

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

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

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

Отборочный этап состоит из трёх раундов продолжительностью 100 минут. Они оцениваются отдельно по системе «гран-при 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

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

Первый раунд начнётся 4 июня 2016 г. в 16:00.

Второй раунд начнётся 10 июня 2016 г. в 21:00.

Третий раунд начнётся 13 июня 2016 г. в 10:00.

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

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

  1. больше зачётных очков;
  2. больше решённых задач при равенстве зачётных очков;
  3. меньше штрафного времени при равенстве зачётных очков и одинаковом количестве решённых задач.

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

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

Финал конкурса пройдёт 28 июля 2016 года по адресу: Республика Беларусь, город Минск, проспект Независимости, 116. Каждый финалист должен подтвердить своё участие и представить все необходимые документы до 1 июля 2016 года. В противном случае он будет дисквалифицирован. Для финалистов не имеющих возможности присутствовать очно предполагается участие онлайн.

5. Призы

512 лучших участников отборочного этапа получат футболки с символикой конкурса.

Победители финального раунда получат денежные призы:

  • I место — 300 тысяч рублей;
  • II место — 150 тысяч рублей;
  • III место — 90 тысяч рублей.

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

6. Номинация «Стажёрский трек»

Для участия в рамках стажёрского трека Участнику необходимо проставить галочку в соответствующем чекбоксе при регистрации. Изменить свое решение путём изменения состояния галочки в чекбоксе (добавить/удалить) можно вплоть до окончания квалификационного раунда.

Участие в стажёрском треке по остальным параметрам никак не отличается от участия в основном треке.

Приз номинации «Стажёрский трек» — беседа с представителями ООО «ЯНДЕКС» с возможностью прохождения стажировки длительностью 3 (три) месяца в московском офисе (при успешном прохождении беседы). В случае, если Победитель стажёрского трека успешно пройдёт беседу и согласится на участие в стажировке по её итогам, Организатор компенсирует стоимость проезда от места пребывания Победителя стажёрского трека до Москвы и проживание в Москве на время прохождения стажировки.

Победитель стажёрского трека также может претендовать на приз Конкурса.


Соревнования и турниры:

Яндекс.Алгоритм-2017

Яндекс.Алгоритм-2016

Яндекс.Алгоритм-2015

Яндекс.Алгоритм-2014

Архив РОИ

Архив IOI

Турнир трех четвертьфиналов 2016

Турнир трех четвертьфиналов 2015

Турнир трех четвертьфиналов 2014

Турнир трех четвертьфиналов 2012

2014-2015 Отборочный этап Открытой Олимпиады Университета Иннополис

2014-2015 Финальный этап Открытой Олимпиады Университета Иннополис

Урозеро 2014

Snarknews Winter Series 2014

Snarknews Summer Series 2013

Яндекс.Алгоритм-2013

Харьковская зимняя школа 2008 — 2014

MIPT — 2012

2013 Региональный этап , тур 1

Тестовое соревнование

Santa’s complex training round

Santa’s training round

SE USA 2009

SouthEastern USA 2012

Baku 2012

NWERC 2012

MIPT Training camp personal contest

Rocky Mountain Regional 2012

NCPC 2012

All-Siberian Olympiad 2008, Day 2

Northern Subregional MIPT Run

BAPC 2012

Eastern Subregional 2012

Southern Subregional 2012

Central Subregional 2012

Western Subregional 2009

Northern Subregional 2009

Northern Subregional 2008

Northern Subregional 2007

Northern Subregional 2006

Moscow Subregional — 2009

Moscow Subregional 2008

Moscow Subregional 2007 (?)

Moscow Subregional 2006

Mirror of XI Open Cup Onsite

CPR Beta 1

A+B Virtual

Blitz (26 problems)

PTZ2009, ASC 35

PTZ 2009, Ufa tour

South Eastern USA

ASC, 2009 OpenCup Onsite

ECNA 2011

Rocky Mountain SF 2011