Блог пользователя mechakotik

Автор mechakotik, 12 месяцев назад, По-русски

Привет, Codeforces!

Задачи с открытыми тестами — тип задач в олимпиадном программировании, где тесты к задаче доступны для скачивания, а на проверку нужно сдать не код, а ответы на тесты. Обычно это NP-полные задачи с частичной оценкой за тест.

Бот принимает решения участников через чат в Telegram и передаёт их стороннему чекеру, который выставляет баллы за тест. Поддерживается наилучший балл по каждому тесту и таблица результатов. Баллы участников автоматически сохраняются, так что после перезапуска бота результаты не исчезнут. Исходный код и инструкция по настройке доступны в репозитории на GitHub.

Список изменений
  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
12 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Codeforces кое-как поддерживает, я 3 года назад вот такое выкладывал: https://mirror.codeforces.com/blog/entry/79771

  • »
    »
    12 месяцев назад, # ^ |
    Rev. 2   Проголосовать: нравится +17 Проголосовать: не нравится

    Он с тех пор сильно лучше научился поддерживать, в настройках задачи появилась галочка "output only", которая позволяет сдавать zip-архив.

    Я заливал на сборы к всероссу задачу 2014 года с открытыми тестами, все было хорошо, единственный прикол, который словил — в задаче было ровно 100 тестов по 1 баллу, а в zip-архив можно было сдать только тесты c 01.out до 99.out, т.к. маска, по которой проверяется содержимое архива требует, чтобы в имени было ровно две цифры. Писал MikeMirzayanov, но сейчас проверил — это так и не починили.

    Ссылка на контест с этой задачей https://mirror.codeforces.com/group/LSkoyXa9Yw/contest/436281

    • »
      »
      »
      12 месяцев назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

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

      А 100 тестов вообще не проблема, ведь на Deadline / Pizza / Hashcode их порядка 10.