obtain 获得
capacity 容纳能力
int a[1005];
int main() {
int m, n, k;
cin >> m >> n >> k;
while(k --) {
for(int i = 0; i < n; i ++) cin >> a[i];
int index = 1;
bool f = 0;
stack<int> s;
for(int i = 0; i < n; i ++) {
while(s.empty() || s.top() != a[i]) {
s.push(index ++);
if(s.size() > m) {
f = 1;
break;
}
}
if(f) break;
s.pop();
}
f == 0 ? cout << "YES\n" : cout << "NO\n";
}
return 0;
}
不断尝试栈顶是否能弹出数列当前值
如不能弹出,就持续将index入栈,直到能弹出数列值
如能够弹出数列最后一个值,输出YES,如直到栈满也无法达到数值 输出NO