Serve.cfg:problem:scoring checker
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Конфигурационные параметры задач/scoring_checker
Редактирование элемента: страница "Editing contest", вкладка "Problems (serve.cfg)", блок "Abstract problems", поле "Checker calculates score", либо страница "Editing contest", вкладка "Problems (serve.cfg)", блок "Concrete problems", поле "Checker calculates score".
Поддерживаются задачи, в которых балл за задачу (или за каждый тест) выставляется проверяющей программой. Чекер может оценивать тест в любое количество баллов от 0 и до максимального балла за данный тест.
Для этого поддерживается конфигурационная переменная scoring_checker. Если эта переменная установлена в значение 1, то балл за тест будет проставляться чекером.
В турнирах по системе KIROV/OLYMPIAD чекер оценивает каждый тест по отдельности, и суммарный балл за задачу равен сумме оценок чекера по каждому тесту. В турнирах по системе MOSCOW балл за задачу равен оценке чекера первого непройденного теста (в этом случае, разумнее всего, чтобы у задачи был единственный тест).
Оценивающий чекер должен работать следующим образом. Код завершения чекера, как обычно, обозначает результат проверки:
0 OK 1 WA 2 PE 4 PE 5 WA
все остальные коды интерпретируются как Check failed.
Если чекер вернул OK, то тест/задача всегда получает полный балл. Если чекер вернул PE, то тест/задача получает 0. Если чекер вернул WA, то на стандартный поток вывода он должен записать единственное число - балл за тест/задачу. Кроме числа и пробельных символов в стандартный поток вывода ничего выводиться не должно (иначе - Check failed). Число должно быть >= 0 и меньше максимального балла за задачу. Если выведено другое число - Check failed.
Оценивающему чекеру передаются следующие переменные окружения:
EJUDGE
всегда устанавливается в1
.EJUDGE_SCORING_CHECKER
всегда устанавливается в1
.EJUDGE_MAX_SCORE
устанавливается в максимальный балл за тест
(3.10.0).
В режиме
enable_checker_token
передаётся переменная окружения EJUDGE_CHECKER_TOKEN
,
равная 1.
Если установлена
checker_locale,
её значение передается в переменной окружения EJUDGE_LOCALE
.
В режиме
separate_user_score
передается переменная окружения EJUDGE_USER_SCORE
,
равная 1.
В режиме enable_extended_info передаются следующие переменные окружения:
EJUDGE_USER_ID
— идентификатор пользователя,
сдавшего это решение.
EJUDGE_CONTEST_ID
— номер турнира.EJUDGE_RUN_ID
— номер посылки.EJUDGE_TEST_NUM
— номер теста.EJUDGE_TEST_COUNT
— количество тестов в задаче
(3.10.0).
EJUDGE_USER_LOGIN
— логин пользователя,
сдавшего это решение.
EJUDGE_USER_NAME
— имя пользователя,
сдавшего это решение.