全WA求助(玄关)
查看原帖
全WA求助(玄关)
1328579
mairuisheng楼主2024/8/11 17:45
哪里错了?
#include<stack>
#include<cstdio>
using namespace std;
stack<int> s;
int n,k;
int a[100001],b[100001];
bool rejudge()
{
	while(!s.empty())
	{
		if(s.top()!=b[k])return false;
		k++;
		s.pop();
	}
	return true;
}
int main()
{
	int q,i,j;
	scanf("%d",&q);
	for(i=1;i<=q;i++)
	{
		scanf("%d",&n);
		for(j=0;j<n;j++)scanf("%d",&a[j]);
		for(j=0;j<n;j++)scanf("%d",&b[j]);
		for(j=0;j<n;j++)
		{
			if(j!=0)
			{
				if(s.top()==b[k])
				{
					s.pop();
					k++;
				}
			}
			s.push(a[j]);
		}
		if(k!=n)
		{
			if(rejudge())puts("Yes");
			else puts("No");
		}
		else if(k==n)puts("Yes");
	}
	return 0;
}

测试结果:全WA

2024/8/11 17:45
加载中...