20pts求助
查看原帖
20pts求助
823773
_sh1kong_楼主2022/12/27 09:51

原题传送门

#include <iostream>
#include <stack>
#include <cstring>

const int N = 100010;

using namespace std;

stack <int> st;
int a[N],b[N];
int T,n,len;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	
	cin >> T;
	while(T --)
	{
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		len = 1;
		cin >> n;
		for (int i=1;i<=n;i++) cin >> a[i];
		for (int i=1;i<=n;i++) cin >> b[i];
		for (int i=1;i<=n;i++)
		{
			st.push(a[i]);
			while(st.top()==b[len])
			{
				st.pop();
				++len;
				if(st.empty()) break;
			} 
		}
		if(st.empty()) cout << "Yes" << endl;
		else cout << "No" << endl;
	}
	return 0;
}
2022/12/27 09:51
加载中...