回文(palin)
题号:NC229947
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

给定正整数n和整数序列,在这2n个数中,1,2, . . . ,n分别各出现恰好2次。现在进行2n次操作,目标是创建一个长度同样为2n的序列, 初始时b为空序列,每次可以进行以下两种操作之一:

1.将序列a的开头元素加到b的末尾,并从a中移除

2.将序列a的末尾元素加到b的末尾,并从a中移除

我们的目的是让b成为一个回文数列,即令其满足对所有,有。请你判断该目的是否能达成,如果可以,请输出字典序最小的操作方案,具体在【输出格式】中说明。

输入描述:

每个测试点包含多组测试数据。

输入的第一行包含一个整数T,表示测试数据的组数。

每组测试数据的第一行包含一个正整数n,第二行包含2n个用空格隔开的整数

输出描述:

对每个测试数据输出一行答案。

如果无法生成出回文数列,输出一行,否则输出一行一个长度为2n的、由字符LR构成的字符串(不含空格),其中L表示移除开头元素的操作表示操作2。你需要输出所有方案对应的字符串中字典序最小的一个。

字典序的比较规则如下:长度均为2n的字符串字典序小,当且仅当存在下标使得

示例1

输入

复制
2
5
4 1 2 4 5 3 1 2 3 5
3
3 2 1 2 1 3

输出

复制
LRRLLRRRRL
-1

说明

在第一组数据中,生成的的b数列是 4 5 3 1 2 2 1 3 5 4,可以看出这是一个回文数列。

另一种可能的操作方案是LRRLLRRRRR,但比答案方案的字典序要大。

备注:

表示所有T组测试数据中n的和。

 对所有测试点保证
特殊性质:如果我们每次删除a中两个相邻且相等的数,存在一种方式将序列删空(例如)。