Ваш друг пытается взломать хранилище, которое имеет своеобразную систему блокировки: для этого требуется определенное количество мягких ударов в определенном месте. Ваш друг обнаружил номер (который находится в диапазоне 1 ... 99999) и обладает гаджетом, который производит необходимые удары. Тем не менее, гаджет является интерпретатором Brainfuck! Таким образом, ваш друг должен кормить его программой Brainfuck, которая, очевидно, должна быть максимально короткой (ввод-вывод гаджета медленный).
Твоя задача - помочь ему! Напишите программу или подпрограмму на любом языке, которая принимает в качестве входных данных число N
и выводит программу Brainfuck, которая не принимает и выводит строку печатных символов ASCII (исключая пробельные символы - коды в диапазоне 33 ... 126) длины N
.
Пример: для ввода 10
вывод может быть
+++++++++++++++++++++++++++++++++..........
(но я уверен, что это может быть сокращено!)
Ваша оценка будет суммой длин ваших выходных данных для следующих значений N
(это случайные числа):
55
68
15
28
841
838
522
846
4898
9004
9363
3810
13230
67175
37231
44701
О, и вы будете передавать свой код (программу-генератор) своему другу через Twitter. Поэтому убедитесь, что это 140 символов или меньше!
PS Язык Brainfuck имеет много вариантов. Давайте предположим, что лента бесконечна в обоих направлениях (или «круглая и достаточно большая»), а ячейки имеют 32-битную емкость int (конечную и способны хранить числа до 99999). Кроме того, без упаковки: когда ячейка переполняется, машина самоуничтожается!