Олимпиадный тренинг

Задача . C. Палиндромайзер


Ринго нашел строку \(s\) длиной \(n\) в своей желтой субмарине. Строка содержит только строчные буквы английского алфавита. Поскольку Ринго и его друзья любят палиндромы, он хотел бы превратить строку \(s\) в палиндром, применяя к ней два типа операций.

Первая операция позволяет ему выбрать \(i\) (\(2 \le i \le n-1\)) и приписать перевернутую подстроку \(s_2s_3 \ldots s_i\) (всего \(i - 1\) символ) в начало строки \(s\).

Вторая операция позволяет выбрать \(i\) (\(2 \le i \le n-1\)) и приписать перевернутую подстроку \(s_i s_{i + 1}\ldots s_{n - 1}\) (всего \(n - i\) символов) в конец \(s\).

Обратите внимание, что символы строки в этой нумеруются с \(1\).

Например, предположим, что \(s=\)abcdef. Если он выполнит первую операцию с \(i=3\), то добавит cb в начало \(s\), и результат будет cbabcdef. Выполнение второй операции над полученной строкой с \(i=5\) даст cbabcdefedc.

Ваша задача — помочь Ринго сделать строку палиндромом, применяя любые из двух операций (в сумме) не более \(30\) раз. Также, длина полученного палиндрома должна не превышать \(10^6\).

Гарантируется, что для данных ограничений решение существует. Также обратите внимание, что не нужно минимизировать ни количество применяемых операций, ни длину результирующей строки, но они должны вписываться в ограничения.

Входные данные

Единственная строка содержит строку \(S\) (\(3 \le |s| \le 10^5\)) из строчных букв английского алфавита.

Выходные данные

Первая строка должна содержать \(k\) (\(0\le k \le 30\)) — количество выполненных операций.

Каждая из следующих \(k\) строк должна описывать операцию в виде L i или R i. \(L\) обозначает первую операцию, \(R\) — вторую, \(i\) — выбранный индекс.

Длина полученного палиндрома должна не превышать \(10^6\).

Примечание

Для первого примера выполняются следующие операции:

abac \(\to\) abacab \(\to\) abacaba

Для второго примера выполняются следующие операции: acccc \(\to\) cccacccc \(\to\) ccccacccc.

Третий пример уже является палиндромом, поэтому никаких операций не требуется.


Примеры
Входные данныеВыходные данные
1 abac
2
R 2
R 5
2 acccc
2
L 4
L 2
3 hannah
0

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя