PAT1051. Pop Sequence (25)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT1051. Pop Sequence (25)相关的知识,希望对你有一定的参考价值。
#include <iostream> #include <stack> using namespace std; int sizeMax,n,k; stack<int> sta; int queueNum; int num; int j;int flag=0; int main(){ cin>>sizeMax>>n>>k; while(k--){ while(!sta.empty()){sta.pop();} queueNum=1; flag=0; for(int i=0;i<n;i++){ cin>>num; if(flag){continue;} if(num>queueNum){ for(j=queueNum;j<num;j++){ sta.push(j); } if(sta.size()>=sizeMax){ flag=1; continue; } queueNum=num+1; }else if(num<queueNum){ int top=sta.top(); if(top!=num){ flag=1; continue; } sta.pop(); }else{ queueNum++; } } if(flag){ cout<<"NO"<<endl; }else{ cout<<"YES"<<endl; } } return 0; }
以上是关于PAT1051. Pop Sequence (25)的主要内容,如果未能解决你的问题,请参考以下文章
PAT甲题题解-1051. Pop Sequence (25)-堆栈