Системы проверки решений
Виды задач
Стандартная задача
Участник получает условие задачи. На проверку посылается исходный код решения.
Возможны задачи, в которых существует несколько вариантов корректных наборов выходных данных на одном наборе входных.
Пример задачи
Задача на сдачу файла
Участник получает условие задачи и набор входных файлов. На проверку посылается набор выходных файлов и, возможно, исходный код решения.
Пример задачи
Задача на написание тестов
Участник получает условие задачи и ее решение (исходный/исполняемый код). На проверку посылается архив с набором тестов.
Системы оценивания задач
ACM
Решение оценивается как принято/не принято. Учитывается время, прошедшее от начала контеста. За неудачные попытки начисляется штрафное время.
Источники: World Final Rules,
Regional Rules,
The Rulebook
Kirov
Решение оценивается в некоторое количество баллов в зависимости от числа пройденных тестов. Время, прошедшее от начала тура, не учитывается. За решение могут начисляться дополнительные баллы, например, если это — первое решение задачи за контест. Контест может иметь неограниченную продолжительность.
Olympiad
Во время контеста решения принимаются только на проверку. Возможен запуск на не оцениваемых тестах. Проверяется только последнее принятое на проверку решение каждой задачи каждого участника, поэтому полная проверка решений осуществляется после окончания контеста.
Источники: Ejudge: руководство участника,
Открытая олимпиада по программированию
Предложения
Выставление баллов по прохождению тестов
Предлагается использовать расширенные настройки системы оценивания, специфичные для каждого тура и задачи, в архивах с тестами прикладывать файл с параметрами, основанными на следующих соображениях:
- Тесты разделяются на группы, за каждую начисляется некоторое количество баллов. В одной группе каждый тест оценивается одинаковым количеством баллов.
- В разных группах может быть разное количество баллов за тест.
- Баллы за группу начисляются при прохождении всех тестов группы ( score = test_count * ball_for_test ) либо при прохождении ненулевого количества тестов ( score = accepted_test_count * ball_for_test )
- Зависимости между группами тестов.
Пример. Набор тестов состоит из group1 и group2, group2 зависит от group1. Тогда начисление баллов за group2 возможно только при прохождении тестов из group1 (хотя бы одного теста либо всей группы).
- Каждый тест/группа оценивается неотрицательным целым числом.
- Некоторые условия, не зависящие напрямую от решения (см. система Kirov).