Difference between revisions of "Serve.cfg:problem:scoring checker"
(...) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/[[serve.cfg:problem:scoring_checker|scoring_checker]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/[[serve.cfg:problem:scoring_checker|scoring_checker]] | ||
+ | |||
+ | '''Редактирование элемента:''' страница ''"Editing contest"'', вкладка ''"Problems (serve.cfg)"'', блок ''"Abstract problems"'', поле ''"Checker calculates score"'', либо страница ''"Editing contest"'', вкладка ''"Problems (serve.cfg)"'', блок ''"Concrete problems"'', поле ''"Checker calculates score"''. | ||
Поддерживаются задачи, в которых балл за задачу (или за каждый | Поддерживаются задачи, в которых балл за задачу (или за каждый | ||
Line 33: | Line 35: | ||
меньше максимального балла за задачу. Если выведено другое число | меньше максимального балла за задачу. Если выведено другое число | ||
- Check failed. | - Check failed. | ||
+ | |||
+ | Оценивающему чекеру передаются следующие переменные окружения: | ||
+ | * <code>EJUDGE</code> всегда устанавливается в <code>1</code>. | ||
+ | * <code>EJUDGE_SCORING_CHECKER</code> всегда устанавливается в <code>1</code>. | ||
+ | * <code>EJUDGE_MAX_SCORE</code> устанавливается в максимальный балл за тест | ||
+ | ([[изменения в версии 3.10.0|3.10.0]]). | ||
+ | |||
+ | В режиме | ||
+ | <tt>[[serve.cfg:problem:enable_checker_token|enable_checker_token]]</tt> | ||
+ | передаётся переменная окружения <code>EJUDGE_CHECKER_TOKEN</code>, | ||
+ | равная 1. | ||
+ | |||
+ | Если установлена | ||
+ | <tt>[[serve.cfg:global:checker_locale|checker_locale]]</tt>, | ||
+ | её значение передается в переменной окружения <code>EJUDGE_LOCALE</code>. | ||
+ | |||
+ | В режиме | ||
+ | <tt>[[serve.cfg:global:separate_user_score|separate_user_score]]</tt> | ||
+ | передается переменная окружения <code>EJUDGE_USER_SCORE</code>, | ||
+ | равная 1. | ||
+ | |||
+ | В режиме | ||
+ | <tt>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</tt> | ||
+ | передаются следующие переменные окружения: | ||
+ | * <code>EJUDGE_USER_ID</code> — идентификатор пользователя, | ||
+ | сдавшего это решение. | ||
+ | * <code>EJUDGE_CONTEST_ID</code> — номер турнира. | ||
+ | * <code>EJUDGE_RUN_ID</code> — номер посылки. | ||
+ | * <code>EJUDGE_TEST_NUM</code> — номер теста. | ||
+ | * <code>EJUDGE_TEST_COUNT</code> — количество тестов в задаче | ||
+ | ([[изменения в версии 3.10.0|3.10.0]]). | ||
+ | * <code>EJUDGE_USER_LOGIN</code> — логин пользователя, | ||
+ | сдавшего это решение. | ||
+ | * <code>EJUDGE_USER_NAME</code> — имя пользователя, | ||
+ | сдавшего это решение. |
Latest revision as of 12:03, 24 December 2022
Навигация: Главная страница/Система 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
— имя пользователя,
сдавшего это решение.