#include<stdio.h>
#include<stack>
#define MAX_N 1100
using namespace std;
int arr[MAX_N];
stack<int> st;
int main(){
int m,n,k;
scanf("%d%d%d",&m,&n,&k);
while(k--){
while(!st.empty()){
st.pop();
}
for(int j=1;j<=n;j++){
scanf("%d",&arr[j]);
}
int current=1;
bool flag=true;
for(int i=1;i<=n;i++){
st.push(i);
if(st.size()>m){
flag=false;
break;
}
while(!st.empty()&&st.top()==arr[current]){
st.pop();
current++;
}
}
if(st.empty()&&flag){
printf("YES\n");
}else{
printf("NO\n");
}
}
}
1051. Pop Sequence (25)PAT甲级
最新推荐文章于 2024-09-13 21:43:12 发布
本文介绍了一个使用C++实现的栈操作模拟程序,该程序通过输入一组数值和栈的最大容量来判断是否能够按照给定顺序弹出这些数值。此模拟有助于理解栈的工作原理及其限制。
372

被折叠的 条评论
为什么被折叠?



