#include <stdio.h>
int main()
{
int M,N,K;
scanf("%d%d%d",&M,&N,&K);
int j,stack[1000],pop[1000],top,num,k;
for(int i=0;i<K;i++)
{
for(j=0;j<N;j++) scanf("%d",&pop[j]);
top=0;num=1;
stack[0]=1;//num为堆栈顶端的元素
for(k=0;k<N;k++)
{
if(pop[k]<stack[top]) break;
while(pop[k]>stack[top]) stack[++top]=++num;//这里用while,不是if
if(top>=M) break;
if(pop[k]==stack[top]) top--;
if(top<0) stack[++top]=++num;
}
if(k==N) printf("YES\n");
else printf("NO\n");
}
}
Pop Sequence
最新推荐文章于 2021-12-02 19:50:32 发布