Весенний чемпионат по программированию среди юниоров 2019
Версия для печати

Правила олимпиады

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

Каждый участник получает в свое распоряжение один компьютер, работающий под управлением операционной системы Windows.

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

Основной тур длится три часа. Жюри имеет право продлить тур в случае непредвиденных обстоятельств.
Во время основного тура участникам предлагается для решения от 6 до 8 задач на русском языке.
Решения сдаются в автоматическую проверяющую систему на языках программирования: C++, С#, Pascal, Java и Python. Через некоторое время после отправки решения участник узнаёт результат проверки. После окончания тура решения не принимаются.

Участники могут приносить с собой и использовать бумажную литературу (справочники, словари, листинги алгоритмов). Запрещается использование любых вычислительных устройств и средств хранения или передачи информации: портативных компьютеров, калькуляторов, электронных словарей, съёмных носителей, мобильных телефонов, любых наушников и других коммуникационных устройств.
Разрешается использование любого программного обеспечения, установленного на предоставленном компьютере.

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

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

Проверка решений

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

Входные данные подаются программе в стандартном потоке ввода. Программа должна выводить ответ в стандартный поток вывода.

В решениях задач запрещается:

  • работа с любыми файлами;
  • выполнение внешних программ и создание новых процессов;
  • работа с GUI-элементами (окнами, диалогами и т.д.);
  • работа с внешними устройствами (принтером, звуковой картой и т.д.);
  • использование сетевых средств.

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

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

Для каждой задачи определены максимальное время выполнения, объём доступной памяти и максимальный размер выходных данных для одного теста. Программа участника проходит данный тест, если выдаёт для него верный ответ и укладывается в ограничения по времени, по памяти и по размеру выходных данных.

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

Определение победителя

Участники ранжируются по числу решённых (т.е. зачтённых) задач. При равенстве числа решённых задач выше ставится участник, имеющий меньшее суммарное штрафное время. При равенстве числа решённых задач и штрафного времени выше ставится участник, которая раньше сдала свою последнюю зачтённую задачу.

Суммарное штрафное время определяется как сумма штрафных времён каждой зачтённой задачи. Штрафное время отдельной задачи определяется как время от начала тура до момента посылки первого решения, признанного правильным, плюс 20 минут за каждую предыдущую посылку решения на эту задачу. Нерешённые задачи никакого вклада в суммарное штрафное время не вносят (в том числе и в виде штрафов за неправильные решения).

Во время тура участникам доступна таблица с текущими результатами. За час до конца основного тура таблица замораживается. Все промежуточные результаты являются неофициальными. Официальные результаты объявляются на закрытии соревнования.

Жюри имеет право дисквалифицировать участников олимпиады в следующих случаях:

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

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