CF1421C.Palindromifier
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Ringo found a string s of length n in his yellow submarine. The string contains only lowercase letters from the English alphabet. As Ringo and his friends love palindromes, he would like to turn the string s into a palindrome by applying two types of operations to the string.
The first operation allows him to choose i (2≤i≤n−1) and to append the substring s2s3…si (i−1 characters) reversed to the front of s.
The second operation allows him to choose i (2≤i≤n−1) and to append the substring sisi+1…sn−1 (n−i characters) reversed to the end of s.
Note that characters in the string in this problem are indexed from 1.
For example suppose s=abcdef. If he performs the first operation with i=3 then he appends cb to the front of s and the result will be cbabcdef. Performing the second operation on the resulted string with i=5 will yield cbabcdefedc.
Your task is to help Ringo make the entire string a palindrome by applying any of the two operations (in total) at most 30 times. The length of the resulting palindrome must not exceed 106
It is guaranteed that under these constraints there always is a solution. Also note you do not have to minimize neither the number of operations applied, nor the length of the resulting string, but they have to fit into the constraints.
Ringo 在他的黄色潜水艇中发现了一个长度为 n 的字符串 s。该字符串仅由英文字母的小写字母组成。由于 Ringo 和他的朋友们喜爱回文串,他希望通过对字符串 s 执行以下两种操作,将其变为一个回文串。
第一种操作:选择一个下标 i(满足 2≤i≤n−1),将子串 s2s3…si(共 i−1 个字符)的逆序添加到 s 的前端。
第二种操作:选择一个下标 i(满足 2≤i≤n−1),将子串 sisi+1…sn−1(共 n−i 个字符)的逆序添加到 s 的末尾。
注意:本题中字符串的字符下标从 1 开始。
例如,设 s=abcdef。若对 s 执行第一种操作且取 i=3,则需将子串 s2s3=bc 的逆序 cb 添加至 s 前端,结果为 cbabcdef。再对所得字符串执行第二种操作且取 i=5,则需将子串 s5s6=ef 的逆序 fe 添加至末尾?——但注意:此处原题描述为“sisi+1…sn−1”,对 cbabcdef(长度为 8)取 i=5,对应子串为 s5s6s7=a b c?不,需严格按题意:当前字符串为 cbabcdef,长度 n=8,s1=c,s2=b,s3=a,s4=b,s5=c,s6=d,s7=e,s8=f;于是 sisi+1…sn−1=s5s6s7=cde,其逆序为 edc,添加至末尾得 cbabcdefedc。原文示例结果确为 cbabcdefedc,故此处无误。
你的任务是帮助 Ringo 通过至多 30 次(两种操作总计)上述操作,使整个字符串变为回文串。最终回文串的长度不得超过 106。
在给定约束下,保证总存在解。另外请注意:你无需最小化所用操作次数,也无需最小化最终字符串的长度,但二者均须满足上述约束。
输入格式
The only line contains the string S (3≤∣s∣≤105) of lowercase letters from the English alphabet.
唯一的一行包含字符串 S(3≤∣S∣≤105),由英文字母的小写字母组成。
输出格式
The first line should contain k (0≤k≤30) — the number of operations performed.
Each of the following k lines should describe an operation in form L i or R i. L represents the first operation, R represents the second operation, i represents the index chosen.
The length of the resulting palindrome must not exceed 106.
第一行应包含 k(0≤k≤30)——执行的操作次数。
接下来的 k 行每行应描述一个操作,格式为 L i 或 R i。其中 L 表示第一种操作,R 表示第二种操作,i 表示所选的下标。
最终得到的回文串长度不得超过 106。
输入输出样例
输入#1
abac
输出#1
2 R 2 R 5
输入#2
acccc
输出#2
2 L 4 L 2
输入#3
hannah
输出#3
0
说明/提示
For the first example the following operations are performed:
abac → abacab → abacaba
The second sample performs the following operations: acccc → cccacccc → ccccacccc
The third example is already a palindrome so no operations are required.
第一个样例执行以下操作:
abac → abacab → abacaba
第二个样例执行以下操作:acccc → cccacccc → ccccacccc
第三个样例本身已是回文串,因此无需任何操作。
输入解题思路,AI测评打分。不知道怎么写?