F. Печать
Ограничения: время – 5s/10s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В Московском Институте Оптимизаций (МИО) был разработан новый протокол, который используется для передачи данных на принтер. Согласно этому протоколу в режиме печати текстовых файлов принтер «понимает» три команды:
Letter('<символ>') – печатает символ, указанный в скобках.
Repeat(<число>) – повторяет печать последних
`N` символов, где
`N` – число, указанное в скобках.
End – завершает печать файла.
Ваша задача заключается в том, чтобы написать программу, которая получая на входе строку символов оптимальным образом составляет программу для печати этой строки (оптимальным образом – значит программа должна содержать минимально возможное количество команд).
В первой строке входного файла содержится строка, которую нужно напечатать. Эта строка может содержать любые символы, ASCII коды которых не меньше 32. Длина строки не превосходит 5000 символов.
В первой строке выходного файла должно содержаться единственное число – общее количество команд в получившейся программе. Далее должны идти сами команды – по одной команде в каждой строчке. В конце каждой команды кроме последней должен содержаться символ ";" (точка с запятой), а после последней команды должен идти символ "." (точка).
Пример ввода 1
BABBAABBAB
Пример вывода 1
8
Letter('B');
Letter('A');
Letter('B');
Letter('B');
Letter('A');
Repeat(4);
Letter('B');
End.
Пример вывода 2
5
Letter('w');
Letter('o');
Letter('r');
Letter('d');
End.
Источник: http://neerc.ifmo.ru/school/archive/