20分WA+TLE求助
查看原帖
20分WA+TLE求助
342868
qfpjm楼主2021/8/14 10:05
#include <bits/stdc++.h>

using namespace std;

int T;

int main()
{
	cin >> T;
	while (T --)
	{
		int n, a[100005], top = 1;
		stack<int> stk;
		bool is_true = false;
		cin >> n;
		for (int i = 1 ; i <= n ; i ++)
		{
			cin >> a[i];
		}
		for (int i = 1 ; i <= n ; i ++)
		{
			int x;
			cin >> x;
			bool flag = false;
			int new_top = 0;
			for (int j = top ; j <= n ; j ++)
			{
				if (a[j] == x)
				{
					flag = true;
					new_top = j;
					break;
				}
			}
			if (flag)
			{
				for (int j = top ; j <= new_top ; j ++)
				{
					stk.push(a[j]);
				}
				stk.pop();
				top = new_top;
			}
			else
			{
				if (stk.top() != x)
				{
					is_true = true;
				}
				else
				{
					stk.pop();
				}
			}
		}
		if (!is_true)
		{
			cout << "Yes" << endl;
		}
		else
		{
			cout << "No" << endl;
		}
	}
	return 0;
}

2021/8/14 10:05
加载中...