Привет, Codeforces.
Рад поделится небольшим, но полезным обновлением Polygon, которое было полностью разработано мной уже в стенах ИТМО. Теперь подготавливать задачи с затейливым вводом-выводом станет немного проще.
Теперь в новых задачах вы тот ввод-вывод для примеров попадает в текст условия без каких-либо преобразований LaTeX-ом. Например, если раньше у вас были сложности с правильным форматированием пустых строк или тем, что двойной дефис заменяется на тире, то теперь таких трудностей нет. Улучшение работает как для PDF-, так и HTML-условий.
Чтобы иметь вот такие примеры ввода-вывода просто добавляйте такой тест и используйте соответствующий вывод из авторского решения.
Отмечу, что возможность перезаписать примеры сохранилась (custom content of input or output data for statements). Кажется, что причин использовать её для ввода теперь почти нет (видимо, только для интерактивных задач).
В старых задачах используется прежний подход, поэтому это нововведение не должно сломать существующие задачи.
Как вам фича?
Thank you MikeMirzayanov for the update!
имто
СохранилаТь
ИМТО?)
Неплохо :)
Кстати, не так давно об этом сообщал в баг-трекер: link
Но по ответу
мне показалось, что он помечен как won't fix. Если бы не этот пост, не узнал бы, что этот баг исправлен :)
custom output всё ещё нужен для того, чтобы не подсказывать участникам решение.
Кстати, на КФ планируется сделать, чтобы при посылке не было видно авторского ответа?
Для этого надо написать авторское решение вида
if (n == 2 && a == {1,2}) cout << 3;
Если так сделать, то еще и ворнингов никаких в полигоне не будет. В отличие от custom output.
Не, ну так я умею, но это костыль же (а вообще полигон умеет проверять что аутпут проходит чекер(если только там нет тех-вёрстки) и в таком случае имеет смысл варнинг не показывать (а может и уже не показывается))
У меня как-то была задача, в которой чтобы не палить участникам решение надо было вывести 105 единиц, а в тесте в принципе output был не меньше 64 даже на минтесте, так что это не всегда работает.
Очень круто! Недавно приходилось заливать задачу, в которой в выводе были решетки, сейчас это станет проще.
А можно небольшой вопрос по полигону? Почему при форматировании IOI типа задачи, где можно указывать баллы за пройденный тест в чекере, при вызове _pc(score) возвращает 16 + score? Не очень понятен скрытый смысл :(
Don't be afraid of special characters :>
Как я вижу, для этого в Files -> problem.tex используется
\exmpfile
из стандартного olymp.sty. Ну что ж, давно пора! Спасибо за нововведение!Проблема с
\exmpfile
в том, что для PDF-версии условий в длинных строках он не делает переносы. Пример:В превью HTML-версии такая строка тоже вылезает за границу примера. Как будет в отображении задачи на Codeforces, пока не проверял.
Тем не менее, обычно такие длинные строки в тестах — повод что-то поменять в задаче: ведь добавленные переносы формально не соответствуют условию.
ДЕЙСТВИТЕЛЬНО
Я рад, что эта задача так хорошо запомнилась :) . В ней-то как раз всё хорошо поместилось в полстроки, так что претензия не по теме.
Введу в курс дела тех, кто не в теме: это моя задача, и реальная претензия состоит в том, что в формате ввода-вывода слишком много строковых констант, которые надо правильно вбить в решении.
С одной стороны, я понял, насколько участникам это не нравится, и обязательно учту это в будущем. С другой стороны, это не значит, что строковые константы вам в задачах больше никогда не придётся вбивать. Если вы встретили такую задачу, можно не нервничать, а спокойно вбить их и пойти дальше.
Я пошёл и посчитал: в этой задаче аж 9 строк из 158 байт в сумме. Сложно? Ну ok, я понял.
Can you please develop it so that we can prepare IOI styled problems ?
What prevents you from doing that right now?
Interactive problems ? Actually I don't know how to do these :'(
I think we need a way to tag groups for each test in a programmable manner. Currently there is setGroup() function in the validator, but it is not reflected to the actual group data. This will greatly help the support on problems with subtasks. (like in IOI)
I commented this before, but no one seemed to care back then :(
Задачи с затейливым вводом-выводом все еще не вымерли?