模拟入栈出栈 根据样例编写程序
#include <cstdio> #include <iostream> #include <stack> using namespace std; int main(){ int m,n,k; scanf("%d %d %d",&m,&n,&k); for(int i=0;i<=k-1;i++){ int data; int flag=1; stack <int> mystack; int index=1; for(int j=1;j<=n;j++){ scanf("%d",&data); if(!mystack.empty()&&mystack.top()>data){ flag=0; } while(index<=data){ mystack.push(index); index++; if(mystack.size()>m){ flag=0; } } if(!mystack.empty()&&mystack.top()==data){ mystack.pop(); } } if(!flag){ printf("NO\n"); } else{ printf("YES\n"); } } return 0; }