Skip to content

Latest commit

 

History

History
66 lines (56 loc) · 4.34 KB

Contest.md

File metadata and controls

66 lines (56 loc) · 4.34 KB

Общее

С точки зрения please контест представляет из себя один файл, в котором записаны параметры контеста (название) и список задач. Для каждой задачи хранится ссылка на неё (относительный путь до директории с задачей) и её локальный идентификатор. Последний — это строка, однозначно определяющая задачу внутри контеста. Часто в контестах задачи нумеруются латинскими буквами (A, B, C, …), тогда букву задачи и следует использовать в качестве её локального идентификатора.

Идентификаторы

В случае, если при добавлении задачи её идентификатор не указан, он генерируется автоматически, используя один из заданных методов. Метод указывается в конфиге контеста.

Команды

Создание контеста

please create contest <название> of <задачи>

Создаёт пустой контест и сохраняет его в файл <название>.contest. Нужно указать хотя бы одну задачу. Задачи указываются списком, через пробел.

Изменение параметра контеста

please change contest <контест> prop <параметр> <значение>

Устанавливает один из параметром контеста в указанное значение. Доступные параметры: name, id_method, statement.name, statement.location, statement.date, statement.template. Контест здесь и в следующих командах указывается его название (то есть используется файл <контест>.contest).

Добавление задач

please add problems <задачи> to <контест>
please add problems <задачи> to <контест> as <идентификаторы>

Добавляет в контест указанные задачи. Во втором варианте идентификаторы задач следует указывать списков через запятую без пробелов (например, D,E,F). Идентификаторов должно быть столько же, сколько и задач. Если идентификаторы не указаны, они генерируются автоматически.

Удаление задач

please delete problems <задачи> from <контест>

Удаляет из контеста указанные задачи. Задачи можно указывать их идентификаторами либо путями.

Генерация условия

please generate contest <контест> statement

Собирает условие для контеста в один pdf-файл.

Экспорт в тестирующие системы

export <контест> to <система> as <id>

Конфигурационный файл

Данные о контесте в файле записываются в формате, аналогичном default.package. Пример конфигурационного файла:

name = ЛКШ-2011.Зима.Олимпиада параллелей A+, A'+, B+
id_method = default
statement = {
    name = Олимпиада параллелей A+, A'+, B+
    location = ЛКШ-2011.Зима
    date = 31 декабря 2011
    template = contest.tex
}
problem = {
    path = snowflake
    id = I
}

Этот файл возможно редактировать вручную, однако некорретно построенный конфигурационный файл контеста может привести к непредсказуемому поведению please.

(to be continued) TODO: возможные методы генерации id'шников