Правила основного тура

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

Олимпиада проводится по схеме Международного студенческого чемпионата мира по программированию (ICPC) и является отборочным этапом к Всероссийской командной олимпиаде школьников по программированию (ВКОШП).

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

Организация олимпиады

В 2020 году олимпиада проходит в дистанционном формате, каждая команда соблюдает правила прокторинга. Если эти правилам противоречат им, приоритет у правил прокторинга.

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

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

Жюри подготавливает комплект задач олимпиады. После олимпиады представители жюри проводят разбор задач.

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

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

Каждая команда состоит ровно из трёх учащихся 4-11 классов. При этом участники могут учиться в разных школах. Команду может сопровождать тренер. В этом случае он является официальным контактным лицом команды и может защищать её интересы при общении с жюри.

Олимпиада состоит из пробного и основного туров.

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

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

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

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

Разные задачи можно решать на разных языках программирования.

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

Жюри может ответить на поставленный вопрос «Да», «Нет», «Читайте условие» или «Без комментариев». Жюри может разослать ответ на вопрос всем участникам олимпиады.

Команда может распечатать своё решение на принтере. Необходимые средства для печати предоставляются программным обеспечением олимпиады. Распечатка будет доставлена команде представителем технического комитета.

Количество листов бумаги на каждую команду ограничено.

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

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

Порядок дистанционного участия

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

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

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

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

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

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

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

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

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

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

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

Возможные типы сообщений:

РезультатНомер тестаКомментарийВозможные причины
Ошибка компиляции (Compilation error) Нет В результате компиляции программы не создан исполняемый файл.
  • Синтаксическая ошибка в программе;
  • При отправке на проверку выбран неверный язык программирования.
Превышено ограничение по времени (Time limit exceeded) Да Программа не завершилась за отведенный период времени.
  • Неэффективное решение;
  • Ошибка в программе.
Превышено ограничение по памяти (Memory limit exceeded) Да Программа попыталась использовать больше памяти, чем разрешается.
  • Неэффективное решение;
  • Ошибка в программе.
Превышен лимит бездействия (Idleness limit exceeded) Да Программа не использует процессорное время в течении длительного промежутка.
  • В интерактивных задачах - отсутствие flush для вывода, ожидание ввода пока вывод все еще находится в буфере;
  • В интерактивных задачах - нарушение протокола взаимодействие, ошибочное ожидание ввода;
  • Ошибка в программе;
  • Использование файлов.
Нарушение безопасности (Security Violation) Да Программа попыталась предпринять действия, запрещенные правилами.
  • Ошибка в программе;
  • Намеренное нарушение правил (в этом случае команда будет дисквалифицирована).
Ошибка времени исполнения (Runtime error) Да Программа завершилась с ненулевым кодом возврата, либо создала исключительную ситуацию (exception) и не обработала ее.
  • Выход за границы предоставленной памяти;
  • Деление на ноль;
  • Ошибка в программе;
  • Необработанная исключительная ситуация.
Неправильный ответ (Wrong answer) Да Ответ неверен.
  • Неверный формат вывода;
  • Неверный алгоритм решения.
Принято (Accepted) Нет Решение принято жюри.
  • Решение правильное.

Результаты

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

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

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