Serve.cfg:problem:variant num

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Конфигурационные параметры задач/variant_num

Имя переменной: variant_num
Содержится в: problem
Используется: serve, run
Тип содержимого: integer
Может отсутствовать: да
Наследуется: да
Значение по умолчанию: не установлено
Может повторяться: нет

Редактирование элемента: страница "Editing contest", вкладка "Problems (serve.cfg)", блок "Concrete problems", поле "Number of variants".

Описание. Данная конфигурационная переменная устанавливает количество вариантов задачи. Если значение данной переменной не установлено или явно установлено в 0, текущая задача не является вариантной, то есть предусматривается только один набор тестов, правильных ответов и одна проверяющая программа. Невариантными являются, как правило, все задачи в турнирах.

В некоторых случаях (например, при проведении самостоятельных работ с автоматической проверкой решений) желательно, чтобы у разных учащихся были бы разные задачи. Для этого можно использовать вариантные задачи. Вариантная задача — это семейство задач, у которых совпадают все параметры, кроме каталога с тестами, каталога с правильными ответами и проверяющей программы. Вариант задачи — это целое число, начиная от 1. Переменная variant_num задаёт количество вариантов задачи, которые, таким образом, нумеруются 1, 2 и до variant_num.

Все параметры, необходимые для тестирования вариантной задачи, получаются из невариантных параметров следующим образом. Каталог с тестами для варианта n должен находиться по пути ${test_dir}-n, где ${test_dir} — значение конфигурационной переменной test_dir данной задачи. Другими словами, к пути к каталогу с тестами, который был бы у данной задачи, если бы она не была вариантной, приписывается номер варианта, отделённый знаком «минус». Каталог с правильными ответами к тестам для варианта n должен находиться по пути ${corr_dir}-n, где ${corr_dir} — значение конфигурационной переменной corr_dir данной задачи. Проверяющая программа должна располагаться по пути ${check_cmd}-n, где ${check_cmd} — значение конфигурационной переменной check_cmd данной задачи.

Если значение переменной variant_num в описании задачи не установлена, но данная задача наследует свойства абстрактной задачи, в которой значение переменной установлено, будет использовано значение переменной, установленное в описании абстрактной задачи.

Пример.

variant_num = 4