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

Правила двадцатой пятой открытой всероссийской командной олимпиады школьников по программированию

Общая часть

  • Всероссийская командная олимпиада школьников по программированию проводится для команд из России и других стран. Задачи предлагаются на русском и английском языках.
  • Всероссийская командная олимпиада школьников по программированию является открытой, мы рады пригласить к участию команды не только из России, но и из других стран. Для проведения олимпиады для участников из других стран привлекаются организации из этих стран.
  • Финал олимпиады проводится в Санкт-Петербурге, Новосибирске и других точках проведения. Точный список точек проведения формируется и публикуется после окончания отборочных соревнований с учетом стран, которые прошли на финал ВКОШП.
  • Основными целями и задачами олимпиады являются пропаганда научных знаний и развитие у школьников интереса к научной деятельности, активизация работы спецкурсов, кружков, научных обществ учащихся, развития других форм работы со школьниками, создание оптимальных условий для выявления одаренных и талантливых школьников, их дальнейшего интеллектуального развития и профессиональной ориентации, развитие умения работать в коллективе.

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

  • Олимпиада проводится в один компьютерный тур. На туре команде предоставляется персональный компьютер и предлагается решить несколько задач. Продолжительность тура — 5 часов. Жюри может продлить время тура в случае каких-либо непредвиденных обстоятельств.
  • В олимпиаде принимают участие команды, каждая из которых составлена из трех школьников.
  • Участникам предоставляются современные компьютеры с установленной операционной системой семейства Windows.
  • Для решения задач участники могут использовать следующие языки программирования и соответствующие им среды разработки:
    • Pascal: Borland Delphi, Free Pascal;
    • C++17: Visual C++ Express Edition, GNU C++ (MinGW), Code::Blocks;
    • C#: Visual C# Express Edition;
    • Java: Sun JDK, Eclipse, IntelliJ IDEA.
    • Python: Python 3, Wing IDE 101, PyCharm.
    • D: DMD.
    • Kotlin.
  • Жюри оставляет за собой право установить последние версии компиляторов и дополнительные среды разработки.
  • Все среды разработки будут полностью установлены на каждом компьютере, включая встроенные системы помощи и примеры. Запрещается использовать какие-либо другие компиляторы и библиотеки.
  • Во время тура разрешается пользоваться любой литературой и личными записями. Запрещается использовать любую информацию в электронном виде, личные компьютеры или калькуляторы, мобильные средства связи.
  • Во время тура участники решают предложенные задачи. Решением задачи является программа, составленная на одном из допустимых языков программирования. Программа не должна содержать вспомогательных модулей или файлов. Разные задачи можно решать на разных языках программирования.
  • Все задачи предполагают, что входные данные подаются на стандартный ввод. Программа должна выводить выходные данные в стандартный поток данных.
  • Проверка решений производится во время соревнований. С помощью специальной программы команды посылают свои решения жюри. Жюри компилирует программы, используя компиляторы командной строки, и проверяет их. Участники должны поместить все директивы компилятора в файлы решений.
  • По мере готовности своих решений команда посылает их жюри для проверки. После этого команда может продолжать работу над другими задачами. После того, как жюри проверит решение (проверка занимает около 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;
    • Необработанная исключительная ситуация.
    Wrong answerYesОтвет неверен.
    • Неверный формат вывода;
    • Неверный алгоритм решения.
    AcceptedNoРешение принято жюри.
    • Решение правильное.
  • Решения участников проверяются на заранее подготовленном жюри наборе тестов. Решение принимается жюри, если оно прошло все тесты. Частичные решения (прошедшие не все тесты) не оцениваются.
  • Время тестирования и решения и доступная память на каждом тесте ограничены. Решения, превысившие установленное ограничение, считаются неэффективными для данной задачи. В этом случае тест считается не пройденным, а решение, как следствие, неверным. Жюри указывает ограничения на время работы программы на одном тесте и на размер доступной памяти в формулировках задач.
  • В решениях задач запрещено использовать:
    • работу с графическим интерфейвсом;
    • создание каталогов;
    • любое использование сетевых средств;
    • любые другие средства или действия, которые могут нарушить процесс проверки и прохождения олимпиады.
  • Решение должно выдавать одинаковые ответы на одинаковые тесты, не зависимо от времени запуска и программного окружения. Жюри вправе произвести неограниченное количество повторных тестирований программы участника и выбрать любой результат по каждому из тестов.
  • Во время тура участники могут общаться только с членами своей команды и представителями жюри.
  • За нарушение правил олимпиады команда может быть дисквалифицирована.
  • Апелляция не проводится.
  • Жюри обладает исключительным правом определения правильности прохождения тестов, выставления оценок, определения победителей и дисквалификации участников. Жюри разбирает вопросы, возникающие в результате непредвиденных событий и обстоятельств. Решения жюри окончательны и обжалованию не подлежат.

Система оценивания

  • Выше оказывается классифицирована команда, решившая большее количество задач.
  • При равенстве количества решенных задач выше оказывается классифицирована команда, у которой меньше суммарное штрафное время. Штрафное время вычисляется следующим образом: для решенных задач, штрафное время представляет собой время в минутах, прошедшее с начало тура до сдачи задачи, плюс 20 штрафных минут за каждую неудачную попытку сдать задачу. За нерешенные задачи штрафное время не начисляется.
  • Лучшие 15 команд награждаются медалями. Команды, занявшие места с 1 по 4 награждаются золотыми медалями. Команды, занявшие места с 5 по 12, награждаются серебряными медалями. Команды, занявшие места с 13 по 28 награждаются бронзовыми медалями.
  • Команды награждаются дипломами. Не менее 30 и не более 40 процентов команд награждаются дипломами. Если можно выбрать такое число задач k, что количество команд, решивших хотя был k задач, составляет от 30 до 40 процентов от участвующих команд, то выбирается максимальное такое k и все команды, решившие хотя бы k задач награждаются дипломами. В противном случае дипломами награждаются максимальное число команд, чтобы не более 35 процентов команд получило диплом. Жюри принимает решение о распределении дипломов первой, второй и третьей степени.