CF1421C Palindromifier

题目描述

Ringo 在他的 [yellow submarine](https://www.youtube.com/watch?v=m2uTFF_3MaA) 里发现了一个长度为 $n$ 的字符串 $s$。该字符串只包含小写英文字母。由于 Ringo 和他的朋友们非常喜欢回文串,他希望通过对字符串 $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_is_{i+1}\ldots s_{n-1}$(共 $n-i$ 个字符)反转后添加到 $s$ 的末尾。 注意,本题中字符串下标从 $1$ 开始。 例如,假设 $s = $ abcdef。如果他对 $i=3$ 执行第一种操作,则会将 cb 添加到 $s$ 的前面,结果为 cbabcdef。接着对新字符串执行第二种操作,$i=5$,则会得到 cbabcdefedc。 你的任务是帮助 Ringo 通过最多 $30$ 次上述两种操作(总共不超过 $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 第三个样例本身就是回文串,因此不需要任何操作。 由 ChatGPT 4.1 翻译