半年多没碰代码了,手生了
从零开始的RE世界生活
//#pragma GCC opitimize(2)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
using namespace std;
const int N=3e5;
int q,n,a[N],res;
bool flag;
stack<int>s;
inline void read(int &x){
x=0;int f=1;char ch=getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;
ch=getchar();
}
while(isdigit(ch)){
x=x*10+(ch^48);
ch=getchar();
}
x*=f;
}
int main(){
read(q);
while(q--){
res=1;flag=false;
while(!s.empty())s.pop();
read(n);
for(register int i=1;i<=n;++i)
read(a[i]);
s.push(a[1]);
for(register int i=1;i<=n;++i){
int x;
read(x);
if(flag)continue;
while(x!=s.top()&&res<n){
++res;
s.push(a[res]);
}
if(res==n&&s.top()!=x){
flag=true;
cout<<"No"<<'\n';
}
s.pop();
}
if(!flag)cout<<"Yes"<<'\n';
}
return 0;
}