Serve.cfg:problem:test sets
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Конфигурационные параметры задач/test_sets
Имя переменной: | test_sets |
Содержится в: | problem |
Используется: | run |
Тип содержимого: | string |
Может отсутствовать: | да |
Наследуется: | нет |
Значение по умолчанию: | "" (пустая строка) |
Может повторяться: | да |
Описание. Данная конфигурационная переменная позволяет задавать количество баллов, которое получает решение задачи, давшее правильный ответ на заданном множестве тестов. Данная конфигурационная переменная используется только в режиме турнира KIROV или OLYMPIAD (см. конфигурационную переменную score_system).
Данная конфигурационная переменная призвана бороться с угадыванием ответов. Например, если по условию задачи требуется дать ответ в форме "YES" или "NO", решение участника может всегда давать ответ "YES" или всегда давать ответ "NO", и такое «решение» может получить частичный балл (иногда довольно большой). Тогда чтобы бороться с такими программами, множество ответов "YES" и множество ответов "NO" могут быть указаны, как множества тестов, оцениваемые в 0 баллов. Теперь чтобы получить ненулевой балл решение участника должно хотя бы один раз правильно ответить "YES" и хотя бы один раз правильно ответить "NO".
Каждое значение конфигурационной переменной test_sets задаёт одно множество тестов, но переменная test_sets может быть повторена в описании задачи несколько раз, задавая несколько множеств тестов. Значение данной конфигурационной переменной не наследуется.
Значением одной конфигурационной переменной test_sets является строка-спецификация множества тестов, имеющая следующий формат (грамматика записана в нотации EBNF).
test_set_spec = test_num_list "=" set_score ; test_num_list = { test_score } ; set_score = NUMBER ; test_score = NUMBER ;
Другими словами, спецификация множества тестов состоит из перечисления номеров тестов, за которым после знака -" следует число баллов, назначаемое за данное множество тестов. Такое правило срабатывает только если множество тестов, на которых решение участника дало правильный ответ, в точности совпадает с указанным множеством тестов.
Пример.
В следующем примере за успешное прохождение только тестов 2, 4, 5 решение
участника получает 1 балл, а за успешное прохождение тестов 1, 4, 6 — 2 балла.
test_sets = "2 4 5 = 1" test_sets = "1 4 6 = 2"