Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Шаги с CLI

  1. Перейдите в директорию, где будут лежать ваши задачи
  2. Создайте стандартную задачу:
    aj-cli problem . prepare <название задачи>
    
    Либо используйте шаблон:
    aj-cli problem . prepare -t <номер шаблона> <название задачи>
    
  3. Типичная структура задачи такая:
    ├── checker.rs
    ├── config.toml
    └── tests
        ├── <тест>
        │   ├── in # входные данные теста
        │   └── out # выходные данные теста
    
  4. Отредактируйте config.toml в следующем формате:
    name_ru = "<название задачи на русском>"
    name_en = "<название задачи на английском>"
    type = "<тип задачи>" # default -- обычная задача, interactive -- интерактивная, run_twice -- с двойным запуском, run_twice_interactive -- интерактивная с двойным запуском, run_twice_first_interactive -- с двойным запуском, причём первый из них -- интерактивный, run_twice_second_interactive -- с двойным запуском, причём второй из них -- интерактивный
    testing_type = "<тип тестирования задачи" # ioi -- формат IOI (подгруппы на баллы), ioi_merge_subgroups -- формат IOI со слиянием подгрупп
    owner_id = "<ваш id>"
    contest_id = <id контеста>
    index = <индекс задачи в контесте, начиная с 0>
    time_limit_ms = <лимит по времени, мс>
    memory_limit_mb = <лимит по памяти, МБ>
    checker_path = "<путь до исходника чекера>"
    checker_lang = "<язык чекера>" # c/cpp/rust/go/python/free_pascal
    tests_path = "<путь до директории с тестами>"
    
    # Подгруппы
    [[subgroups]]
    type = "<тип подгруппы>" # sample -- примеры, main -- основная
    tests = [<тесты подгруппы>]
    score = <баллы за подгруппу>
    # score_per_test = <баллы за каждый тест подгруппы>
    depends_on = [<индексы подгрупп, прохождение которых требуется для тестирование на этой подгруппе, начиная с 0 в порядке их следования в файле конфига>]
    
  5. Можно добавить тесты к задаче:
    aj-cli problem <путь к задаче> insert-tests <начиная с> <заканчивая на, включительно>
    
  6. Можно протестировать решение на тестах:
    aj-cli problem <путь к задаче> run <путь к бинарнику решения> <начиная с> <заканчивая на, включительно>