Первоапрельский контест 2018 |
---|
Закончено |
В этой задаче вам нужно написать несложный генератор кода для двухмерного языка программирования, производного от Brainfuck.
Код на этом языке представляет собой прямоугольник, состоящий из символов '.' и 'X'. Код преобразуется в программу на Brainfuck следующим образом: символы читаются в книжном порядке (сверху вниз, слева направо), и каждому символу 'X' ставится в соответствие команда Brainfuck. Команда определяется левым, верхним и правым соседями символа 'X' в соответствии со следующей таблицей:
Вам дана строка. Выведите программу на этом языке, которая при выполнении напечатает эту строку.
Вы можете скачать исходный код используемого интерпретатора по ссылке https://assets.codeforces.com/rounds/952/puzzling-interpreter.cpp (используйте C++11 чтобы скомпилировать код). Обратите внимание на несколько аспектов реализации:
Входные данные состоят из одной строки символов с аски-кодами от 33 ('!') до 122 ('z'), включительно. Длина строки - от 1 до 10 символов, включительно.
Выведите программу на описанном языке, которая при выполнении выведет на печать заданное сообщение.
$$$
.......X.......
......XXX......
.....XXXXX.....
....XXXXXXX....
...XXXXXXXXX...
..XXXXXXXXXXX..
.XXXXXXXXXXXXX.
...............
X.............X
X..............
X..............
X..............
Пример соответствует следующей программе на Brainfuck:
-
>+<
>+++<
>+++++<
>+++++++<
>+++++++++<
>+++++++++++<
< >
.
.
.
Треугольный блок вычитает единицу из первой ячейки памяти и устанавливает значение второй ячейки равным 36 - аски-коду символа '$'. Следующая после треугольного блока строка передвигает указатель памяти на вторую ячейку, а три последние строки выводят символ '$' три раза.
Название |
---|