每次栈用完记得清空!
#include<iostream>
#include<stack>
#include<algorithm>
using namespace std;
const int maxn = 1010;
int main() {
stack<int> s;
int m, n, k;
cin >> m >> n >> k;
for (int i = 0;i < k;i++) {
int t[1010];
for (int j = 0;j < n;j++) {
cin >> t[j];
}
bool flag = true;
int o = 0;
for (int p = 1;p <= n;p++) {
s.push(p);
if (s.size()> m) { flag = false;break; }
while (!s.empty() && s.top() == t[o]) {
s.pop();o++;
}
}
if (flag == true && s.empty()) {
printf("YES\n");
}
else {
printf("NO\n");
}
while (!s.empty()) { s.pop(); }
}
system("pause");
return 0;
}