mairuisheng @ 2024-08-11 17:45:51
#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
by 奈芙蓮 @ 2024-08-11 19:35:24
每个询问
by mairuisheng @ 2024-08-12 15:54:15
@stemdarrenyang 谢谢,问题已解决,已关,此帖结。