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

Автор DANDROZAVR, история, 4 года назад, По-русски

Hi, Codeforces! Сan anyone advice me how to use testlib locally? I use Code::Blocks IDE with C++ and want to create a checker. No idea how to pass arguments (int argc, char * argv[]) to the main function :)

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

Автор DANDROZAVR, история, 4 года назад, По-русски

Предисловие: Нужно подготовить задачу на открытые тесты(каждый тест оценивается в какое-то количество балов), и хотелось бы на сервисе Яндекса. Нашел вариант с компилятором Make2 + компилированием с помощью Makefile, doit.sh, select_file.py(вот это все для отправки готовых ответов в виде архива => разархивирования архива) и постпроцессинга с выставлением балов файлом postprocessor_sum_points.py(пишу название для тех, кто шарит :)

А теперь к проблеме. Чтобы я не делал, чекер, использующий testlib всегда выдает одну и туже комбинацию Crash(Exitcode 7) + оценка баллов:

Заглянув в документацию testlib.h, можно увидеть это:

Вопрос 1: Я не совсем понимаю, в каких случаях возникает этот exitcode. Это же не сама ошибка в программе(ведь тогда бы было что-то вроде SISGEV), но тогда что это и почему нет никаких пояснений?

Вопрос 2: Я создал такой же чекер и решение на полигоне, но на нем получил славный OK. Как вообще могут различаться вердикты то?

Вопрос 3: Я перед глазами вижу задачу, в которой тоже получаю Crash + Exitcode 7, отправляя решения вj вкладке "Тесты и решения"(как админ задачи), но никаких проблем при работе в контесте с этой задачей(полный балл и Exitcode 0).

Был бы очень признателен хоть каким-то намекам в том, что делать или что проверить. Еще хотелось бы понять про этот таинственный Exitcode 7. Код чекера

P.S. Не совсем представляю черную магию, которая не дает мне засылать архивы в задачу или загружать их в локальное пространство задачи(в первом случае кнопка "отправить" блокируется, во втором — архив таинственным образом превращается в последний текстовый файл из архива; с этим можно смириться, отправляя архив в контесте, но, как уже выяснено выше, это не всегда дает одинаковый вердикт).

Так выглядят вердикты тестов: Вердикты тестов

Лог тестов: Лог тестов

UPD: Решается обычным костылем "#define POINTS_EXIT_CODE 0". Видимо, все чекеры testlib с points-checker возвращаются с такими бЕдами. Надеюсь, кому-то поможет)

Полный текст и комментарии »

  • Проголосовать: нравится
  • +39
  • Проголосовать: не нравится