| 记录编号 |
608507 |
评测结果 |
AAAAAAAAAAAAAAAAAAAAAAAAA |
| 题目名称 |
3621.[CSP 2021S]回文 |
最终得分 |
100 |
| 用户昵称 |
孤独的氢离子 |
是否通过 |
通过 |
| 代码语言 |
C++ |
运行时间 |
4.407 s |
| 提交时间 |
2025-10-26 16:11:35 |
内存使用 |
15.22 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,a[2000010],b[1000010];
char s[2000010];
int main()
{
freopen("2021palin.in","r",stdin);
freopen("2021palin.out","w",stdout);
int T;
cin>>T;
while(T--)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
cin>>n;
for(int i=1;i<=n*2;i++)
{
cin>>a[i];
if(b[a[i]]==0) b[a[i]]=i;
else b[a[i]+n]=i;
}
if(n==1)
{
cout<<"LL"<<endl;
}
else
{
int l1=2,r1=2*n,l2=b[a[1]+n],r2=l2,lst=2,rst=2*n-1;
for(int il=1;il<=2;il++)
{
if(il==1)
{
l1=2,r1=2*n,l2=b[a[1]+n],r2=l2,lst=2,rst=2*n-1;
s[1]='L';
s[2*n]='L';
}
else if(il==2)
{
l1=1,r1=2*n-1,l2=b[a[2*n]],r2=l2,lst=2,rst=2*n-1;
s[1]='R';
s[2*n]='L';
}
for(int i=2;i<=n;i++)
{
if(a[l2-1]==a[l1]&&l2-1>l1)
{
l2--;l1++;s[lst]='L';s[rst]='L';
lst++;rst--;
}
else if(a[r2+1]==a[l1])
{
r2++;l1++;s[lst]='L';s[rst]='R';
lst++;rst--;
}
else if(a[l2-1]==a[r1])
{
l2--;r1--;s[lst]='R';s[rst]='L';
lst++;rst--;
}
else if(a[r2+1]==a[r1]&&r2+1<r1)
{
r2++;r1--;s[lst]='R';s[rst]='R';
lst++;rst--;
}
else
{
if(il==2)
{
cout<<-1<<endl;
}
break;
}
if(i==n)
{
for(int k=1;k<=2*n;k++)
{
cout<<s[k];
}
cout<<endl;
il=3;
}
}
}
}
}
return 0;
}