Олимпиады по информатике. Санкт-Петербург, Россия

Порядок проведения интернет-тура

Общая информация

Отборочный интернет-тур Семнадцатой Всероссийской командной олимпиады школьников по программированию пройдет в воскресенье, 23 октября 2016 года. Начало тура в 12-00 по московскому времени. Продолжительность тура — 5 часов.

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

Команды должны участвовать в туре в присутствии аккредитованного преподавателя, код которого они вводили при регистрации. При невозможности сделать это в силу форс-мажорных обстоятельств, руководитель команды должен связаться с организаторами олимпиады. Это можно сделать по электронной почте либо в Google Talk stankev@gmail.com (Андрей Сергеевич Станкевич).

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

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

Пробный тур

Пробный тур проводится с 18-00, 18 октября 2016 года до 18-00, 21 октября 2016 года.

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

Вход в систему и решение задач

Для работы с проверяющей системой требуется использовать PCMS2 Web Client.

Для входа в систему участники используют логин и пароль. Логин и пароль высылаются преподавателю, под наблюдением которого осуществляется решение задач не менее чем за 2 часа до начала тура. Пароль на основном туре будет отличаться от пароля на пробном туре.

Задачи олимпиады будут выложены в формате PDF.

За 30 минут до начала тура на странице "Задачи" будут выложены RAR-архивы с условиями задач. Архивы будут защищены паролем. Пароль будет опубликован на той же странице в момент начала тура. Также в момент начала тура будут опубликованы незаархивированные версии условий задач.

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

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

  • Pascal: Borland Delphi, Free Pascal;
  • C/C++/C++11: Visual C++, GNU C++ (MinGW);
  • C#: Visual C#;
  • Java: Sun JDK 8
  • Python: Python 3.5
  • D: DMD

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

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

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

По мере готовности своих решений команда посылает их жюри для проверки. После этого команда может продолжать работу над другими задачами. После того, как жюри проверит решение (проверка занимает около 1-5 минут), команда получает сообщение с результатами тестирования. Это сообщение показывается на экране. Если не возникло ошибки компиляции, то в нем сообщается, что задача зачтена, либо сообщение с указанием ошибки на первом из непройденных тестов.

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

РезультатНомер тестаКомментарийВозможные причины
Compilation errorNoВ результате компиляции программы не создан исполняемый файл.
  • Синтаксическая ошибка в программе;
  • При отправке на проверку выбран неверный язык программирования.
Time limit exceededYesПрограмма не завершилась за отведенный период времени.
  • Неэффективное решение;
  • Ошибка в программе.
Memory limit exceededYesПрограмма попыталась использовать больше памяти, чем разрешается.
  • Неэффективное решение;
  • Ошибка в программе.
Idleness limit exceededYesПрограмма не использует процессорное время в течении длительного промежутка.
  • Ввод с клавиатуры;
  • В интерактивных задачах - отсутствие flush для вывода, ожидание ввода пока вывод все еще находится в буфере;
  • В интерактивных задачах - нарушение протокола взаимодействие, ошибочное ожидание ввода;
  • Ошибка в программе.
Security ViolationYesПрограмма попыталась предпринять действия, запрещенные правилами.
  • Ошибка в программе;
  • Намеренное нарушение правил (в этом случае команда будет дисквалифицирована).
Runtime errorYesПрограмма завершилась с ненулевым кодом возврата, либо создала исключительную ситуацию (exception) и не обработала ее.
  • Ошибка времени исполнения;
  • В конце программы на C/C++ нет оператора 'return 0';
  • 'return (не 0)' в программе на С/С++;
  • 'halt(не 0)' в программе на паскале;
  • 'System.exit(non-zero)' в программе на Java;
  • Необработанная исключительная ситуация.
Presentation errorYesПрограмма проверки не может проверить выходные данные, т.к. их формат не соответствует описанному.
  • Неверный формат вывода;
  • Выходной файл имеет неправильное имя, или отсутствует.
Wrong answerYesОтвет неверен.
  • Неверный алгоритм решения.
AcceptedNoРешение принято жюри.
  • Решение правильное.

Решения участников проверяются на заранее подготовленном жюри наборе тестов. Решение принимается жюри, если оно прошло все тесты. Частичные решения (прошедшие не все тесты) не оцениваются.

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

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

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

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

Система оценок

Выше оказывается классифицирована команда, решившая большее количество задач.

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