Запуск на пользовательских данных

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Запуск на пользовательских данных

Описание

Если для задачи активирован режим запуска на пользовательских данных, участники получают возможность делать "тестовые" посылки решений на сервер. Такие решения не учитываются как "обычные" посылки, то есть не влияют на начисленные баллы, штрафы и т. п. Они не идут в квоту участника на количество и суммарный размер посылок.

Кроме того, при запуске на пользовательских данных участник должен задать входные данные, которые будут поданы на вход запускаемой программе. Входные данные могут предварительно валидироваться с помощью программы проверки тестов. Запуск на пользовательских данных запускает программу только на одном тесте (том, который предоставил пользователь), и вывод программы не проверяется на корректность и правильность с помощью проверяющей программы.

Режим запуска на пользовательских данных включается с помощью установки конфигурационного параметра задачи enable_user_input в положительное значение.

В этом случае на странице просмотра условия задачи и сдачи решения интерфейса участника турнира появится новая вкладка "Run on server".

[1]

Если перейти на вкладку "Run on server" отобразится форма для прикладывания исходного текста программы и её входных данных. Ниже показан вид формы ввода при установленном конфигурационном параметре задачи enable_text_form.

[2]

Если конфигурационный параметр задачи enable_text_form не установлен, форма для запуска на сервере выглядит следующим образом:

[3]

После отправки решения на проверку через какое-то время на странице сдачи решения участника появится информация о тестировании решения.

[4]

Настройка

Для активации режима запуска на пользовательских данных необходимо установить конфигурационный параметр задачи enable_user_input в положительное значение.

По умолчанию пользователь может запускать программу на своих данных один раз в 5 секунд в одном турнире. Чтобы изменить это ограничение нужно задать глобальный конфигурационный параметр time_between_submits.

Размер сдаваемой программы ограничен значением глобального конфигурационного параметра max_run_size. По умолчанию он равен 64KiB. Размер входных данных для программы ограничен глобальным конфигурационным параметром max_input_size. По умолчанию он равен 1KiB. Общее количество запусков на пользовательских данных в одном турнире ограничено глобальным конфигурационным параметром max_submit_num. По умолчанию он равен 100. Общий размер исходных текстов и пользовательских данных запусков на пользовательских данных ограничен в одном турнире глобальным конфигурационным параметром max_submit_total. По умолчанию он равен 1MiB.

Для задачи может быть задана команда проверки корректности входных данных test_checker_cmd. В этом случае после компиляции программы и перед её запуском запускается программа проверки корректности входных данных. Пользовательские тестовые данные передаются ей на стандартном потоке ввода. Если программа проверки корректности завершается с кодом 0, далее на этих данных запускается тестируемая программа. Если программа проверки корректности завершается с кодом 1, 2, 4, 5, пользовательские данные отвергаются, и запуск тестируемой программы не выполняется.

API

Пользователь с правами участника может отправлять на запуск с пользовательскими данными с помощью запроса submit-run-input. Статус посылки можно проверить с помощью запроса get-submit.

Пользователь с правами администратора может отправлять на запуск с пользовательскими данными с помощью запроса submit-run-input. Статус посылки можно проверить с помощью запроса get-submit.

Ограничения

В текущей версии запуск на пользовательских данных не поддерживается для задач, запускаемых в подготовленном каталоге (use_tgz).