q

jiangyilu 2024-01-29 20:13:43

#include <bits/stdc++.h> using namespace std; const long long N = 1e6;

int x[N]; int y[N]; bool f(int x[], int y[], int m){ stack a; int j=1; for (int i=1;i<=m;i++){ a.push(x[i]); while(!a.empty()&&a.top()==y[j]&&j<=m){ a.pop(); j++; } } if(!a.empty()){ return false; }else{ return true; } } int main(){ int n; cin >> n; while(n--){ int m; cin >> m; for(int i=1;i<=m;i++){ cin >> x[i]; } for(int i=1;i<=m;i++){ cin >> y[i]; }

	if(f(x, y, m)){
		cout << "Yes" << endl;
	}else{
		cout << "No" << endl;
	}
}

}