Контест окончен, надеюсь, вам понравилось. Здесь выложен разбор задач.
Язык этого раунда — Befunge, очаровательный двухмерный эзотерический язык программирования. Как для эзотерического, он достаточно лаконичен и удобен в использовании. Так, например, задача "A+B" (числа A и B заданы в отдельных строках) решается вот так:
&&+.@
Для знакомства с языком можно почитать авторскую документацию (в некоторых браузерах отображается с ошибкой) и примеры программ на Rosetta Code. На русском есть статья в Википедии и статья в Прогопедии с разобранными примерами программ.
Система тестирования использует интерпретатор befungee, реализующий диалект Befunge-93. Для запуска интерпретатора необходимо иметь установленный Python (версии 2.6 или около того — в версиях 3.* интерпретатор работать не будет). Следует скачать файлы befungee.py, boards.py
и funge.py
, сохранить их в той же директории, что и исходные коды ваших программ, и запускать программы командой python befungee.py <имя программы на Befunge>
. Обратите внимание на встроенный дебаггер (опция запуска --debug --delay=100
), позволяющий отслеживать перемещения указателя инструкций в ходе выполнения программы.
В качестве локальной альтернативы можно использовать интерпретатор WASABI, требующий для запуска Java. Скачайте архив с интерпретатором, распакуйте его и запускайте среду разработки командой java -jar "Wasabi v1_4.jar" <имя программы на Befunge>
.
Во всех входных данных конец строки обозначается символом #10 (это понадобится для задач, в которых нужно читать данные до конца строки). Значения, возвращаемые вашей программой, проверяются с точностью до пробелов и переводов строк: можно не заканчивать выведенные строки переводами строк, а в задачах, требующих вывести несколько чисел, их можно разделять произвольным количеством пробелов. Кроме того, в конце строки тоже могут быть лишние пробелы.