1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #include <iostream> #include <stack> #include <vector> using namespace std; int main() { int m,n,k; cin>>m>>n>>k; for (int i = 0; i < k; ++i) { stack<int >(s); vector<int> v(n + 1); bool flag = false; int current = 1; for (int i = 1; i <= n; ++i) { scanf("%d", &v[i]); } for (int i = 1; i <= n; ++i) { s.push(i); if (s.size() > m) break; while (!s.empty() && s.top() == v[current]) { s.pop(); current++; } } if (current == n + 1) flag = true; if (flag) printf("YES\n"); else printf("NO\n"); } return 0; }
|