printЗадачи заочного тура личного первенства

printC. Трансформация строки

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Над строкой, состоящей из символов "a" и "b" разрешается производить следующие действия:
  1. Если последним символом строки является символ "a", можно добавить к строке символ "b". Например, из строки "aaba" можно получить строку "aabab".
  2. Можно удвоить строку, сцепив её саму с собой. Например, из строки "aab" можно получить строку "aabaab"
  3. Можно заменить любое вхождение подстроки "aaa" на "b". Например, из строки "aaaaa" можно получить строку "aba".
  4. Можно удалить любое вхождение подстроки "bb". Например, из строки "abbab" можно получить строку "aab".
Необходимо получить заданную строку из строки "a".
В первой строке ввода содержится строка из символов "a" и "b" длиной от 1 до 1000 символов.
В первой строке вывести сообщение "YES", если можно получить заданную строку, иначе вывести "NO". Для ответа "YES" в следующих строках вывести последовательность действий – по одному действию на строке. В строках с действиями 3 и 4 нужно указать также начальный индекс заменяемой (удаляемой) подстроки. Можно вывести любую возможную последовательность действий, приводящую к нужному результату, не обязательно самую короткую.

Пример ввода

aba

Вывод для примера

YES
2
2
2
1
3 2
3 4
4 4
loading