При организованном участии команда использует один компьютер, условия в печатном виде при этом предоставляются организатором площадки.
Пользование телефоном запрещено при любом способе участия в олимпиаде. На основном компьютере олимпиады должна быть только одна клавиатура и максимум одна мышь.
Во время тура участники решают предложенные задачи. Решением задачи является программа, написанная на одном из допустимых языков программирования. Программа не должна содержать вспомогательных модулей или файлов. Разные задачи можно решать на разных языках программирования.
Все задачи предполагают, что входные данные вводятся со стандартного потока ввода, результат выводится на стандартный поток вывода.
В задачах, в которых вводится последовательность чисел, числа могут разделяться одним или несколькими пробелами и (или) символами перевода строки. После последнего числа также могут идти переводы строки и (или) пробелы. Во всех задачах (если иное не оговорено в условии) в конце строк могут идти незначащие пробелы, после последней строки с данными могут быть незначащие пустые строки.
По мере готовности своих решений команда посылает их жюри для проверки. После этого команда может продолжать работу над другими задачами. После того, как жюри проверит решение (проверка занимает около 1-5 минут), команда получает сообщение с результатами тестирования.
Проверка решений производится во время соревнований. С помощью специального программного обеспечения команды посылают свои решения жюри. Размер исходного кода посылаемого решения не должен превышать 64 кб. Жюри транслирует программы, используя компиляторы командной строки, и проверяет их. Участники должны поместить все директивы компилятора в файлы решений.
Решения проверяются на заранее подготовленных жюри наборах тестов. Эти наборы одни и те же для всех команд и для разных попыток сдачи задачи одной команды. При этом программа должна на каждом тесте укладываться в отведенное время работы и не превышать ограничение на размер доступной памяти. Программа должна завершаться с 0 кодом возврата. Программа запускается на тестах до 1-го неправильного теста (как только найден тест, на котором программа не работает или выдает неверный ответ, дальнейшее тестирование программы не производится).
Решенными считаются задачи, решения которых проходят все тесты из тестового набора. Если программа не проходит хотя бы один тест, задача считается нерешенной. По каждой задаче команда может делать несколько попыток ее сдачи.
Команды ранжируются по числу решенных задач (чем больше задач решено - тем лучше), а при равном числе решенных задач - по штрафному времени (чем штрафное время меньше - тем более высокое место занимает команда). Штрафное время вычисляется следующим образом: для решенных задач штрафное время представляет собой время в минутах, прошедшее с начала тура до сдачи задачи, плюс 20 штрафных минут за каждую неудачную попытку сдать задачу. За нерешенные задачи штрафное время не начисляется.
Результат проверки сообщается команде в следующем виде. Команде сообщается результат проверки задачи, а в некоторых случаях - и номер первого непрошедшего теста (если команда получила сообщение "Wrong answer на тесте 11", то это значит, что тесты с 1 по 10 у команды прошли правильно).
Сообщение | Номер теста сообщен? | Когда возникает | Возможная причина |
---|---|---|---|
OK | Нет | Решение зачтено | Программа работает верно |
Compilation Error | Нет | Компиляция программы завершилась с ошибкой | 1. В программе допущена синтаксическая или семантическая ошибка 2. Неправильно указан язык Примечание: за попытки, завершившиеся "ошибкой компиляции", штрафное время не начисляется |
Wrong answer | Да | Ответ не верен | 1.Ошибка в программе 2. Неверный алгоритм |
Presentation error | Да | Программа проверки не может проверить выходные данные, так как их формат не соответствует описанному | 1. Неверный формат вывода 2. Программа не печатает результат или печатает его в файл с другим именем 3. В программе не закрывается выходной файл 4. Лишний вывод |
Time-limit exceeded | Да | Программа превысила установленный в условии лимит времени | 1. Ошибка в программе (например, бесконечная рекурсия) 2. Неэффективное решение |
Memory-limit exceeded | Да | Программа превысила установленный в условии лимит памяти | 1. Ошибка в программе (например, бесконечная рекурсия) 2. Неэффективное решение |
Run-time error | Да | Программа завершила работу с ненулевым кодом возврата | 1. Ошибка выполнения 2. Программа на языке C/C++ не завершается оператором return 0 3. Ненулевой код возврата указан явно |
В течение тура (за исключением последнего часа) участники могут видеть текущие результаты всех команд. За час до конца тура результаты в общей таблице перестанут обновляться, о чем участникам будет сообщено. Однако ответы на посланные на проверку решения по-прежнему будут приходить и полученные результаты будут учитываться в окончательных результатах олимпиады.
Во время тура участники могут общаться только с членами своей команды, представителями жюри через тестирующую систему. Использование заранее написанного кода и любых электронных материалов запрещено. Разрешается пользоваться заранее подготовленными бумажными истониками (книги, конспекты).
За нарушение правил олимпиады команда может быть дисквалифицирована.
Жюри обладает исключительным правом определения правильности прохождения тестов, выставления оценок, определения победителей и дисквалификации участников. Жюри разбирает вопросы, возникающие в результате непредвиденных событий и обстоятельств. Решения жюри окончательны и обжалованию не подлежат. Апелляция не проводится.