CF1421C.Palindromifier

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Ringo found a string ss of length nn 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 ss into a palindrome by applying two types of operations to the string.

The first operation allows him to choose ii (2≤i≤n−12 \le i \le n-1) and to append the substring s2s3…sis_2s_3 \ldots s_i (i−1i - 1 characters) reversed to the front of ss.

The second operation allows him to choose ii (2≤i≤n−12 \le i \le n-1) and to append the substring sisi+1…sn−1s_i s_{i + 1}\ldots s_{n - 1} (n−in - i characters) reversed to the end of ss.

Note that characters in the string in this problem are indexed from 11.

For example suppose s=s=abcdef. If he performs the first operation with i=3i=3 then he appends cb to the front of ss and the result will be cbabcdef. Performing the second operation on the resulted string with i=5i=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 3030 times. The length of the resulting palindrome must not exceed 10610^6

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 在他的黄色潜水艇中发现了一个长度为 nn 的字符串 ss。该字符串仅由英文字母的小写字母组成。由于 Ringo 和他的朋友们喜爱回文串,他希望通过对字符串 ss 执行以下两种操作,将其变为一个回文串。

第一种操作:选择一个下标 ii(满足 2≤i≤n−12 \le i \le n-1),将子串 s2s3…sis_2s_3 \ldots s_i(共 i−1i - 1 个字符)的逆序添加到 ss 的前端。

第二种操作:选择一个下标 ii(满足 2≤i≤n−12 \le i \le n-1),将子串 sisi+1…sn−1s_i s_{i + 1}\ldots s_{n - 1}(共 n−in - i 个字符)的逆序添加到 ss 的末尾。

注意:本题中字符串的字符下标从 11 开始。

例如,设 s=abcdefs = \text{abcdef}。若对 ss 执行第一种操作且取 i=3i = 3,则需将子串 s2s3=bcs_2 s_3 = \text{bc} 的逆序 cb\text{cb} 添加至 ss 前端,结果为 cbabcdef\text{cbabcdef}。再对所得字符串执行第二种操作且取 i=5i = 5,则需将子串 s5s6=efs_5 s_6 = \text{ef} 的逆序 fe\text{fe} 添加至末尾?——但注意:此处原题描述为“sisi+1…sn−1s_i s_{i+1} \ldots s_{n-1}”,对 cbabcdef\text{cbabcdef}(长度为 88)取 i=5i=5,对应子串为 s5s6s7=a b cs_5 s_6 s_7 = \text{a b c}?不,需严格按题意:当前字符串为 cbabcdef\text{cbabcdef},长度 n=8n=8,s1=c,s2=b,s3=a,s4=b,s5=c,s6=d,s7=e,s8=fs_1=\text{c}, s_2=\text{b}, s_3=\text{a}, s_4=\text{b}, s_5=\text{c}, s_6=\text{d}, s_7=\text{e}, s_8=\text{f};于是 sisi+1…sn−1=s5s6s7=cdes_i s_{i+1} \ldots s_{n-1} = s_5 s_6 s_7 = \text{cde},其逆序为 edc\text{edc},添加至末尾得 cbabcdefedc\text{cbabcdefedc}。原文示例结果确为 cbabcdefedc,故此处无误。

你的任务是帮助 Ringo 通过至多 3030 次(两种操作总计)上述操作,使整个字符串变为回文串。最终回文串的长度不得超过 10610^6。

在给定约束下,保证总存在解。另外请注意:你无需最小化所用操作次数,也无需最小化最终字符串的长度,但二者均须满足上述约束。

输入格式

The only line contains the string SS (3≤∣s∣≤1053 \le |s| \le 10^5) of lowercase letters from the English alphabet.

唯一的一行包含字符串 SS(3≤∣S∣≤1053 \le |S| \le 10^5),由英文字母的小写字母组成。

输出格式

The first line should contain kk (0≤k≤300\le k \le 30) — the number of operations performed.

Each of the following kk lines should describe an operation in form L i or R i. LL represents the first operation, RR represents the second operation, ii represents the index chosen.

The length of the resulting palindrome must not exceed 10610^6.

第一行应包含 kk(0≤k≤300\le k \le 30)——执行的操作次数。

接下来的 kk 行每行应描述一个操作,格式为 L i 或 R i。其中 L 表示第一种操作,R 表示第二种操作,i 表示所选的下标。

最终得到的回文串长度不得超过 10610^6。

输入输出样例

  • 输入#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 →\to abacab →\to abacaba

The second sample performs the following operations: acccc →\to cccacccc →\to ccccacccc

The third example is already a palindrome so no operations are required.

第一个样例执行以下操作:

abac →\to abacab →\to abacaba

第二个样例执行以下操作:acccc →\to cccacccc →\to ccccacccc

第三个样例本身已是回文串,因此无需任何操作。

输入解题思路,AI测评打分。不知道怎么写?

首页