//stack
//result 1234567
//result 3217 //失败原因,已在栈内,但不是栈项
//result //失败原因,栈不够长
//result 5643721
//result 1 //失败原因,栈不够长
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int M,N,K;
int i,j;
cin>>M>>N>>K;
while(K--){
stack<int>S;
int a[1000];
for(i=0;i<N;i++)cin>>a[i];
j=0;//j表示push过几次
for(i=0;i<N;i++){
//判断a[i]能否被拿出来
if(a[i]>j){
while(S.size()<M&&a[i]>j){
S.push(j+1);
j++;
}
}
if(a[i]>j){//栈不够长
break;
}
else if(S.top()!=a[i]){//已在栈内,但不是栈项
break;
}
else S.pop();
}
if(i==N){
cout<<"YES\n";
}
else{
cout<<"NO\n";
}
}
}
1051 Pop Sequence
最新推荐文章于 2024-10-31 20:10:41 发布