求助,20分
查看原帖
求助,20分
922644
liumuxian楼主2023/12/26 20:09
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=100010;
int a[N],q[N],top=0,cnt=1,n,x;
void init(){
	for(int i=0;i<=N;i++){
		a[i]=0;
		q[i]=0;
		n=0;
		x=0;
	}
	top=0;
	cnt=1;
}
int main(){
	int t;
	cin>>t;
	while(t--){
		init();
		cin>>n;
		int flag=0;
		for(int i=1;i<=n;i++) cin>>q[i];
		for(int i=1;i<=n;i++){
			if(flag==1) break;
			cin>>x;
			if(a[top]!=x){
				while(a[top]!=x){
					if(cnt>n){
						cout<<"No"<<endl;
						flag=1;
						break; 
					}
					a[++top]=q[cnt];
					cnt++; 
				}
				if(flag==1) break;
				top--;			
			}
			else top--;
		}
		if(flag==0) cout<<"Yes"<<endl;	
	}
	return 0;
}

有可能风格不太一样,请不要在意

2023/12/26 20:09
加载中...