#include <iostream>
#include <vector>
#include <stack>
using namespace std;
int main() {
int m,n,k;
scanf("%d%d%d",&m,&n,&k);
for(int i=0;i<k;i++){
bool flag=false;
vector<int> a(n+1);
stack<int>s;
for(int j=1;j<=n;j++)
scanf("%d",&a[j]);
int current=1;
for(int j=1;j<=n;j++){ //模拟栈输入输出,j按1-n压入
s.push(j);
if(s.size()>m) break;
while(!s.empty()&&s.top()==a[current]){ //栈顶等于序列的值才可以弹出
s.pop();
current++;
}
}
if(current==n+1) flag=true; //整个序列可以模拟完
printf("%s\n",flag?"YES":"NO");
}
return 0;
}
PAT 1051 Pop Sequence (25 分) 栈模拟
最新推荐文章于 2024-11-05 17:16:24 发布