rt,该程序 肯定是错解的 但是错误原因是行太长
求找错!!
//I love ccf
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int n,a[5010*2],b[5010*2],h1,t1,t2,T;
char ls[5010*2];
bool fl=0;
void dfs(int stp){
if(fl) return;
if(stp>2*n){
for(int i=1;i<=n;i++)
if(b[i]!=b[2*n+1-i]) return;
fl=1;
for(int i=1;i<=2*n;i++)
putchar(ls[i]);
putchar('\n');
return;
}
b[++t2]=a[h1++];
ls[stp]='L';
dfs(stp+1);
ls[stp]='\0';
t2--; h1--;
b[++t2]=a[t1--];
ls[stp]='R';
dfs(stp+1);
ls[stp]='\0';
t2--; t1++;
}
int main(){
// freopen("palin1.in","r",stdin);
// freopen("palin.out","w",stdout);
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=1;i<=2*n;i++) scanf("%d",&a[i]);
bool flag=0;
for(int i=1;i<=n;i++)
if(a[i]!=a[2*n+1-i]){
flag=1;
break;
}
if(!flag){
for(int i=1;i<=2*n;i++) putchar('L');
continue;
}
h1=1; t1=2*n; t2=0; fl=0;
dfs(1);
if(!fl) puts("-1");
}
fclose(stdin);
fclose(stdout);
return 0;
}
//36pts+0