Где можно найти справку по полигону? Ссылка в самой системе битая. Помимо блогов codeforces где-нибудь еще можно найти обсуждение и информацию по системе?
Также еще несколько мелких вопросов:
- Когда генерятся условия, в примерах отсутствуют ответы. При этом есть и main-solution, и ответы на обычные тесты генерятся отлично. Как добиться того, чтобы и в условиях появились ответы?
- Есть ли способ импорта в полигон задачи из готового full-package созданного в формате polygon?
- Может есть место, где люди делятся простенькими задачами в формате полигона или другом формате пригодном для использования другими?
Я так и делал. В условия добавились тесты, но не ответы к ним.
Да, это main correct solution.
И чекер, и валидатор загружены в систему и установлены.
Предположения:
1. (глупое) может какой-то нехороший человек подправил problem.tex? :D
2. (вроде бы разумное) в задаче стоит файловый ввод-вывод, а main correct solution выводит в stdout
problem.tex я не исправлял, а других нехороших людей под аккаунтом нет.
Возможно ввиду отсутствия справки я путаю, как это должно работать:
жму напротив тесте "edit", отмечаю "Use in statements", сохраняю и радуюсь? Main solution должен же сам сгенерить мне ответ и вставить в условие? Хотя есть возможность и вручную вставить это.
Именно так и должно работать.
Вообще там могут быть проблемы с символами вроде
#
, которые надо экранировать как\#
, сделав инпут-аутпут для этого теста ручным.Но если там есть такие символы, и они не экранированы, то вроде бы tex-парсер должен валиться с ошибкой. Возможно, что он валится, только когда такие символы в инпуте, а вот если они в аутпуте, он ничего в аутпут не пишет...
На самом деле лучше к MikeMirzayanov с такими проблемами обращаться.
P.S. по моему второму предположению ты не отписался, может, это оно?
Да, было как раз второе. Решение выводило в problem.out. Спасибо.
Кстати о символах
#
: почему-то условия задачи с#
нормально генерятся, а если такая задача будет в контесте — появятся ошибки.Эта ошибка с решетками уже известна более года. В Петрозаводске я лично о ней сообщил Михаилу Мирзаянову, он в курсе, так что от пользователей больше ничего не зависит.
А если их экранировать, то pdf-ка для отдельной задачи генериться не будет, а вот для контеста все сделается хорошо. Магия, да?
Ну тоже не очень-то удобно, для preview каждый раз pdf-ку для всего контеста собирать.
Очень странно. Думаю, бага либо в тесте (неправильный, из-за чего model solution не работает), либо собственно в model solution, либо это бага Polygon.
Тут вроде нормально написано что и как
Я читал это, там описаны тонкости для продвинутых пользователей Polygon. Первые шаги совсем не очевидны без простой справки, которой нет или она недоступна временно. Так-то очень хорошая тема, я не спорю.
Ну совсем для начинающих MikeMirzayanov раньше пару тройку раз читал лекцию про то зачем Polygon нужен и как им пользоваться, но на видео это не снимали(
А вообще идея простая. Целью является создание задачи. Для этого нужно: 1) зарегистрироваться на сайте; 2) придумать название задачи и создать ее (для этого есть кнопочка); 3) Теперь нужно сделать небольшие мелочи (установить TL, ML, input, output), поставить теги задачи (например тернарный поиск); 4) дальше пишется условие на нужном/ых языке/ках; 5) авторское решение, просто надо написать авторское решение и добавить его во вкладке Solution; 6) тесты можно сделать либо вручную добавляя их по одному, либо написать небольшую (иногда большую) программку которая берет из параметров командной строки параметры и выводит в консоль тест. Пример генератора:
7) Теперь когда есть тесты и генератор/ы будет очень круто написать валидатор — программа которая проверяет нагенеренный и введенный тесты на корректность. Без валидатора нехорошо, потому что можно набажить в генераторе, а потом участники будут жаловаться на кривые тесты 8) В invocationах можно запустить решения на тестах и убедиться, что все хорошо (или плохо) 9) В конце можно собрать package — архив где все аккуратно лежит
P.S.: Чуть не забыл про чекер — программа проверяющая ответ на правильность. Можно пользоваться стандартными чекерами (типа проверить ответ участника на побуквенное равенство с авторским, либо написать самому что-то умное). По поводу того что такое testlib. Можно зайти на скачать архив там есть примеры и генераторов, и валидаторов, и чекеров.
Здорово. А что дальше делать с package? Какие-то проверяющие системы принимают его в таком виде? Ejudge, насколько я знаю, в последних версиях таки научился работать с Polygon, пусть и не полностью.
Еще вопрос: как пользоваться скриптом для генератора? Что является генератором: исходник, залитый в раздел файлов-исходников? В чем различие использования генератора в общей странице тестов и отдельной странице для каждого теста?
Еджадж, который стоит у нас, криво собран, поэтому с полигоном не работает. Но это на самом деле почти не проблема — достаточно просто залить сгенеренные тесты (tests/*) и чекер (files/testlib.h и files/check.cpp), а потом скомпилировать чекер. И все. Времени отнимает секунд 30 на каждую задачу — не очень и страшно.
Уважаемые участники! Я в тяжелой ситуации. 22 апреля уже контест, задачи и тесты разработал, а как залить на polugon не знаю. Если кто может советом — помогите пожалуйста. Буду благодарен.
Можно ли создавать условии задач на русском языке ?
Все задачи с Codeforces создаются в полигоне.
А у кого-нибудь была подобная сюрреалистичная ошибка при создании пакета:
Если отдельно запускать различные тесты, то всё нормально работает. Ошибка появляется даже если снять галочку Verify.
Вроде же подробно написано. У вас если чекер/интерактор получает от участника случайное отрицательное число int64 число, то неожиданно падает. Вы можете даже добавить такой тест для чекера и увидеть, что чекер падает. Просто исправьте его. Всегда следует предполагать, что участник может вывести любой бред и задача чекера корректно это обработать (большинство работы берет на себя testlib).
UPD: Но сообщение, кстати, странное чуток. Написал в личку, чтобы выяснить подробности.
От участника я получаю только массив чисел с плавающей точкой. Размер задаётся заранее. Там присутствуют строки, которые могут заставить его упасть. Каждый элемент считывается примерно вот так:
Разве в этом случае не должно быть вердикта WA или PE?
UPD:
Запустил локально, действительно вердикт FAIL.
ensuref
не для этого, наверное здесь можно использоватьouf.ensuref
.Наверяка, здесь лучше использовать ouf.readStrictDouble(0.0, 1E9, 0, 6) и написать в условии, что надо выводить не более 6 знаков после десятичной точки, ну и что ожидаются числа от 0 до 10^9.