using namespace std;
#define MAN 100010
int val[MAN];
int b[MAN];
bool vis[MAN];
bool vis1[MAN];
void solve(){
int n ; cin >> n;
memset(vis, 0 ,sizeof(vis));
memset(vis1, 0 ,sizeof(vis1));
memset(b, 0 ,sizeof(b));
memset(val, 0 ,sizeof(val));
for(int i= 1; i <= n ; i++){
int x ; cin >>x;
val[x] = i ;
vis[x] = 1;
}
int j = 0;
for(int i= 1; i <= n ; i++ ){
cin >> b[i];
vis1[b[i]]++;
b[i] = val[b[i]] ;
}
for(int i= 1; i <= n ; i++){
if(!vis[i] || !vis1[i] ){
cout << "NO"<<endl ;
return;
}
}
for(int i= 1; i <= n ; i++ ){
if(b[i] == j + 1 ){
j++;
}else{
int X = b[i]; int k = i + 1 ;
while(b[k] != j + 1 ){
if(b[k] != X - 1){
cout << "No" <<endl ;
return;
}else{
X--;
k++;
}
}
j = b[i] ; i = k ;
}
}
cout << "Yes" <<endl;
}
int main(){
int q; cin >> q;
for(int i =1 ; i <= q ; i++){
solve();
}
}
```’
WA了 20分