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分