谢谢
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int cas, n;
int arr[N];
char ans[N];
bool issolve;
bool Solve(int l1, int r1, int l2, int r2){
int rp;
for(int i = 2; i <= n; i++){
rp = n*2 - i + 1;
if(l1 < r1 && arr[l1] == arr[r1]){
ans[i] = ans[rp] = 'L';
l1++, r1--;
}
else if(l2 >= r2 && arr[l1] == arr[r2]){
ans[i] = 'L';
ans[rp] = 'R';
l1++, r2++;
}
else if(l1 <= r1 && arr[l2] == arr[r1]){
ans[i] = 'R';
ans[rp] = 'L';
r1--, l2--;
}
else if(r2 < l2 && arr[l2] == arr[r2]){
ans[i] = ans[rp] = 'R';
r2++, l2--;
}
else{
return 0;
}
}
return 1;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> cas;
while(cas--){
cin >> n;
for(int i = 1; i <= n*2; i++){
cin >> arr[i];
}
int lp = n, rp = 1;
for(int i = 2; i <= n*2 - 1; i++){
if(arr[i] == arr[1]) lp = i;
if(arr[i] == arr[n*2]) rp = i;
}
issolve = 0;
ans[n*2] = 'L';
if(Solve(2, lp - 1, n*2, lp + 1)){
ans[1] = 'L';
issolve = 1;
}
else if(Solve(1, rp - 1, n*2 - 1, rp + 1)){
ans[1] = 'R';
issolve = 1;
}
if(issolve){
for(int i = 1; i <= n*2; i++) cout << ans[i];
}
else{
cout << "-1";
}
cout << '\n';
}
return 0;
}