PAT A1051 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<stack> #include<algorithm> using namespace std; const int MAXN=1000; bool jugde(int a[],int m,int n){ int i,j,k; stack<int>p; p.push(1); i=0; j=2; while(p.size()<=m && j<n+2 && i<n){ if(!p.empty() && a[i]==p.top()){ p.pop(); i++; }else{ p.push(j); j++; } } if(p.empty()) return true; return false; } int main(){ int a[MAXN]; int n,m,N,i,j; scanf("%d %d %d",&m,&n,&N); for(i=0;i<N;i++){ for(j=0;j<n;j++){ scanf("%d",&a[j]); } if(jugde(a,m,n)) printf("YES\n"); else printf("NO\n"); } return 0; }