Спортивное программирование в УрФУ
Уральский Федеральный университет имени первого Президента России Б.Н.Ельцина
Спортивное программирование на Урале 2020 (весна)
Версия для печати

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

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

Каждый участник получает в свое распоряжение один IBM PC совместимый компьютер конфигурации не хуже Intel Pentium D с 1024 МБ ОЗУ, работающий под управлением операционной системы Windows. В случае непредвиденных обстоятельств, таких как неисправность локальной сети или отсутствие электропитания в компьютерном классе, участникам могут быть предоставлены компьютеры более слабой конфигурации. Олимпиада состоит из пробного тура и основного тура.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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