题目描述
[CSP-S 2021] 回文
题目描述
给定正整数 和整数序列 ,在这 个数中, 分别各出现恰好 次。现在进行 次操作,目标是创建一个长度同样为 的序列 ,初始时 为空序列,每次可以进行以下两种操作之一:
- 将序列 的开头元素加到 的末尾,并从 中移除。
- 将序列 的末尾元素加到 的末尾,并从 中移除。
我们的目的是让 成为一个回文数列,即令其满足对所有 ,有 。请你判断该目的是否能达成,如果可以,请输出字典序最小的操作方案,具体在【输出格式】中说明。
输入格式
每个测试点包含多组测试数据。
输入的第一行,包含一个整数 ,表示测试数据的组数。对于每组测试数据:
第一行,包含一个正整数 。
第二行,包含 个用空格隔开的整数 。
输出格式
对每组测试数据输出一行答案。
如果无法生成出回文数列,输出一行 -1,否则输出一行一个长度为 的、由字符 L 或 R 构成的字符串(不含空格),其中 L 表示移除开头元素的操作 1,R 表示操作 2。
你需要输出所有方案对应的字符串中字典序最小的一个。
字典序的比较规则如下:长度均为 的字符串 比 字典序小,当且仅当存在下标 使得对于每个 有 且 。
输入样例 #1
2
5
4 1 2 4 5 3 1 2 3 5
3
3 2 1 2 1 3
输出样例 #1
LRRLLRRRRL
-1
输入样例 #2
见附件中的 palin/palin2.in
输出样例 #2
见附件中的 palin/palin2.ans
说明/提示
【样例解释 #1】
在第一组数据中,生成的的 数列是 ,可以看出这是一个回文数列。
另一种可能的操作方案是 LRRLLRRRRR,但比答案方案的字典序要大。
【hack 数据提供】
@潜在了H2O下面。
来源
输入样例 #3
5
10
6 8 2 7 10 3 10 7 5 9 1 9 1 6 4 5 3 8 2 4
10
4 4 7 1 3 7 8 5 10 2 6 9 1 9 3 6 2 10 8 5
10
9 2 4 6 7 1 10 3 8 5 5 8 3 10 1 7 6 4 2 9
10
9 10 1 7 7 1 10 9 6 2 3 5 8 4 4 8 5 2 3 6
10
10 9 3 4 8 4 6 7 5 9 10 2 7 1 8 6 1 3 5 2
输出样例 #3
-1
-1
LLLLLLLLLLLLLLLLLLLL
-1
-1
【数据范围】
令 表示所有 组测试数据中 的和。
对所有测试点保证 ,。
| 测试点编号 | 特殊性质 | |||
|---|---|---|---|---|
| 无 | ||||
| 有 | ||||
| 无 | ||||
特殊性质:如果我们每次删除 中两个相邻且相等的数,存在一种方式将序列删空(例如 )。