С точки зрения 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'шников