Правила
Порядок отборочного контеста (олимпиады)
- В олимпиаде принимают участие команды, каждая из которых составлена из трех школьников, соблюдая ограничения.
- На туре команда может использовать только один компьютер для написания кода. Команде предлагается решить несколько задач. Продолжительность тура — 5 часов. Жюри может продлить время тура в случае каких-либо непредвиденных обстоятельств.
- Участники могут распечатать условия задач или использовать телефоны для их прочтения во время соревнования, то же самое можно делать с собственными посылками и кодами.
- Во время соревнований участники могут использовать принтер. Если принтер отсутствует, можно заменить его электронными устройствами, которые будут выполнять исключительно тот функционал, который может выполнить принтер. Команде не разрешается использовать собственные электронные устройства одновременно для написания кода или использования других приложений для решения задач. Это включает, помимо прочего, написание кода для решения проблем, использование научного программного обеспечения для вычислений или запуск самостоятельно написанных программ для расширенных вычислений.
- Участникам запрещено общаться с кем-либо за пределами своей команды во время контеста. Распространение или использование любых материалов по решению задач, включая идеи, коды или вспомогательные программы, в интернете строго запрещено.
- Задачи, используемые в отборочных контестах, могут быть связаны с одновременно идущими соревнованиями или проходившими в прошлом соревнованиями. Если участник писал тур, полностью состоящий из задач прошедшего соревнования, этот участник не должен продолжать участвовать в этом раунде. Если команда, участвовавшая в соревновании имеет тот же состав, что и команда в кубке ФПМИ, рейтинг команды будет заменен ее результатами в исходном контесте.
- Можно использовать любые распечатки, а также шаблон кода, личные библиотеки. Нельзя решать задачи с помощью нейросетей и других средств искусственного интеллекта, искать решения в интернете, а также применять другие способы нечестного решения задач.
- Во время контеста участники будут видеть текущие результаты. Таблица лидеров может быть заморожена через 4 часа после начала соревнования, а результаты, отправленные по истечении 4 часов, будут отображаться в таблице лидеров в ожидании публикации.
- Право толкования и применения правил принадлежит жюри кубка ФПМИ.
Решение задач
- Во время тура участники решают предложенные задачи. Решением задачи является программа, составленная на одном из допустимых языков программирования. Программа не должна содержать вспомогательных модулей или файлов. Разные задачи можно решать на разных языках программирования.
- Все задачи предполагают, что входные данные подаются на стандартный ввод. Программа должна выводить выходные данные в стандартный поток данных.
- Проверка решений производится во время соревнований. С помощью специальной программы команды посылают свои решения жюри. Жюри компилирует программы, используя компиляторы командной строки, и проверяет их. Участники должны поместить все директивы компилятора в файлы решений.
- По мере готовности своих решений команда посылает их жюри для проверки. После этого команда может продолжать работу над другими задачами. После того как жюри проверит решение (проверка занимает около 1-5 минут), команда получает сообщение с результатами тестирования. Это сообщение показывается на экране. Если не возникло ошибки компиляции, то в нем сообщается, что задача зачтена, либо сообщение с указанием ошибки на первом из не пройденных тестов.
- Возможные типы сообщений:
Результат Номер теста Комментарий Возможные причины Compilation error No В результате компиляции программы не создан исполняемый файл. ◦ Синтаксическая ошибка в программе;
◦ При отправке на проверку выбран неверный язык программирования.Time limit exceeded Yes Программа не завершилась за отведенный период времени. ◦ Неэффективное решение;
◦ Ошибка в программе.Memory limit exceeded Yes Программа попыталась использовать больше памяти, чем разрешается. ◦ Неэффективное решение;
◦ Ошибка в программе.Idleness limit exceeded Yes Программа не использует процессорное время в течении длительного промежутка. ◦ Ввод с клавиатуры;
◦ В интерактивных задачах - отсутствие flush для вывода, ожидание ввода пока вывод все еще находится в буфере;
◦ В интерактивных задачах - нарушение протокола взаимодействие, ошибочное ожидание ввода;
◦ Ошибка в программе.Security Violation Yes Программа попыталась предпринять действия, запрещенные правилами. ◦ Ошибка в программе;
◦ Намеренное нарушение правил (в этом случае команда будет дисквалифицирована).Runtime error Yes Программа завершилась с ненулевым кодом возврата, либо создала исключительную ситуацию (exception) и не обработала ее. ◦ Ошибка времени исполнения;
◦ В конце программы на C/C++ нет оператора 'return 0';
◦ 'return (не 0)' в программе на С/С++;
◦ 'halt(не 0)' в программе на паскале;
◦ Необработанная исключительная ситуация.Wrong answer Yes Ответ неверен. ◦ Неверный формат вывода;
◦ Неверный алгоритм решения.Accepted No Решение принято жюри. ◦ Решение правильное.
- Решения участников проверяются на заранее подготовленном жюри наборе тестов. Решение принимается жюри, если оно прошло все тесты. Частичные решения (прошедшие не все тесты) не оцениваются.
- Время тестирования и решения и доступная память на каждом тесте ограничены. Решения, превысившие установленное ограничение, считаются неэффективными для данной задачи. В этом случае тест считается не пройденным, а решение, как следствие, неверным. Жюри указывает ограничения на время работы программы на одном тесте и на размер доступной памяти в формулировках задач.
- В решениях задач запрещено использовать:
- работу с графическим интерфейсом;
- создание каталогов;
- любое использование сетевых средств;
- любые другие средства или действия, которые могут нарушить процесс проверки и прохождения олимпиады.
- Решение должно выдавать одинаковые ответы на одинаковые тесты, не зависимо от времени запуска и программного окружения. Жюри вправе произвести неограниченное количество повторных тестирований программы участника и выбрать любой результат по каждому из тестов.
- Во время тура участники могут общаться только с членами своей команды и представителями жюри.
- За нарушение правил олимпиады команда может быть дисквалифицирована.
- Апелляция не проводится.
- Жюри обладает исключительным правом определения правильности прохождения тестов, выставления оценок, определения победителей и дисквалификации участников. Жюри разбирает вопросы, возникающие в результате непредвиденных событий и обстоятельств. Решения жюри окончательны и обжалованию не подлежат.
Система оценивания
- Выше оказывается классифицирована команда, решившая большее количество задач.
- При равенстве количества решенных задач выше оказывается классифицирована команда, у которой меньше суммарное штрафное время. Штрафное время вычисляется следующим образом: для решенных задач, штрафное время представляет собой время в минутах, прошедшее с начало тура до сдачи задачи, плюс 20 штрафных минут за каждую неудачную попытку сдать задачу. За нерешенные задачи штрафное время не начисляется.
Технические подробности
- Для тестирования задач будет использоваться PCMS
- Для решения задач участники могут использовать следующие языки программирования:
С++ | GCC G++ 14.2.0 Linux | gcc14 -O2 -std=c++23 -x c++ ${source} |
Python | Python 3.10 Linux | python3 ${source} |
Pypy | Pypy 3.8.13 Linux | pypy3 ${source} |
Java | OpenJDK Java 21.0.4 | |
PascalABC | PascalABC 3.10 |
Замены
Команда может заменить одного участника один раз за сезон. В этом случае команда теряет треть всех уже набранных на этот момент баллов. Для замены тренер должен отправить соответствующий запрос в жюри олимпиады.
Разъяснения и объявления
- Во время конкурса жюри могут отправлять объявления через раздел «Информация» в PCMS, которые могут содержать пояснения, исправления или другую важную информацию о содержании задач.
- Участники должны регулярно проверять содержание объявления, а последствия, вызванные отсутствием информации в объявлении, не могут быть использованы в качестве причины для апелляции (которая еще и не проводится).
- Во время соревнования, если у участников возникают вопросы по задачам, они должны задавать вопросы в системе. Не рекомендуется использовать другие способы связи, чтобы задавать вопросы.