求助,RE了
查看原帖
求助,RE了
464732
luqyou楼主2022/10/27 21:05
#include<bits/stdc++.h>
using namespace std;
int t;
int main(){
	scanf("%d",&t);
	while(t--){
		int n,t[10000001],x;
		deque<int> a,b;
		queue<char> ans1;
		stack<char> ans2;
		bool f=1;
		scanf("%d",&n);
		for(int i=1;i<=2*n;i++){
			scanf("%d",&t[i]);
		}
		for(int i=2;i<=2*n;i++){
			if(t[1]==t[i]){
				x=i;
				break;
			}
		}
		for(int i=1;i<=x;i++){
			a.push_back(t[i]);
		}
		for(int i=x+1;i<=n*2;i++){
			b.push_front(t[i]);
		}
		while((a.size()||b.size())&&f){
			int a1,a2,b1,b2;
			if(a.size()) a1=a.front(),a2=a.back();
			if(b.size()) b1=b.front(),b2=b.back(); 
			//printf("%d %d %d %d\n",a1,a2,b1,b2);
			if(a1==a2&&a.size()!=1){
				a.pop_front();
				a.pop_back();
				ans1.push('L');
				ans2.push('L');
			}
			else if(a1==b2){
				a.pop_front();
				b.pop_back();
				ans1.push('L');
				ans2.push('R');
			}
			else if(a1==b1){
				a.pop_front();
				b.pop_front();
				ans1.push('L');
				ans2.push('R');
			}
			else if(a2==b1){
			    a.pop_back();
			    b.pop_front();
			    ans1.push('R');
			    ans2.push('L');
			}
			else if(b1==b2&&b.size()!=1){
				b.pop_front();
				b.pop_back();
				ans1.push('R');
				ans2.push('R');
			}
			else if(b1==a2){
				b.pop_front();
				a.pop_back();
				ans1.push('R');
				ans2.push('L');
			}
			else{
				printf("-1\n");
				f=0;
				//break;
			}
		}
		if(f){
			while(ans1.size()){
				printf("%c",ans1.front());
				ans1.pop();
			}
			while(ans2.size()){
				printf("%c",ans2.top());
				ans2.pop();
			}
			printf("\n");
		}
	}
	return 0;
}
2022/10/27 21:05
加载中...