Джек немногословен. Он не любит повторять одно и то же несколько раз
подряд. Поэтому в двоичном слове, которое Джек недавно написал на заборе,
нет непустых подстрок вида xyxyx, где x и y —
двоичные строки (возможно, нулевой длины), а длина y не превосходит
удвоенной длины x. Например, в слове Джека не могут встречаться
подстроки 000
или 1001001
, но могут встречаться
подстроки 1010
и 001100110
.
Проходящий мимо лис По спросил Джека, как тот получил своё новое слово.
Джек сказал, что сначала на заборе было написано пустое слово, а потом…
Дальнейший рассказ Джека содержит только фразы вида:
-
«Я приписал
0
(или 1
) в начало текущего слова»;
-
«Я приписал
0
(или 1
) в конец текущего слова»;
-
«Я заменил все нули на строку
01
, а все единицы — на
строку 10
».
Лису По интересно, но больше ста таких фраз он не вытерпит. Успеет ли Джек
завершить свой рассказ?
Исходные данные
В единственной строке записано новое слово Джека. Это слово непустое,
состоит только из нулей и единиц, а его длина не превосходит
105.
Результат
Если для описания своего слова Джеку нужно более ста фраз, выведите
«−1». В противном случае выведите любое из возможных описаний. В первой
строке выведите количество фраз k (1 ≤ k ≤ 100).
В следующих k строках перечислите эти фразы в том порядке, в
котором их нужно говорить. Если требуется приписать символ c в
начало, выведите «front c». Если требуется приписать символ
c в конец, выведите «back c». Если требуется заменить
0
на 01
, а 1
на 10
,
выведите «double».
Пример
исходные данные | результат |
---|
011010011
| 5
back 1
front 0
double
double
back 1 |
Замечания
По рассказу из примера последовательно будут получаться строки: пустая
строка, «1», «01», «0110», «01101001», «011010011».
Автор задачи: Алексей Самсонов
Источник задачи: XV Открытый командный чемпионат УрГУ по программированию