#include<iostream>#include<stack>using namespace std;int main(void){ //freopen("in.txt", "r", stdin); int M, N, K; cin >> M >> N >> K; int num;//記錄出棧的數(shù)值 for (int i = 0; i < K; i++ ) { int cur = 1;//由于是1~N,直接采用一個(gè)變量來記錄要入棧的值,省略隊(duì)列。 stack<int> s; int flag = 1; for (int j = 0; j < N; j++) { cin >> num; if (flag) { while (s.empty() || s.top() != num)//空棧或者棧頂不等當(dāng)前值,就入棧 { s.push(cur); cur++; if ((int)s.size() > M)//棧滿,則不可能 { flag = 0; break; } } if (flag == 1 && s.top() == num)//相等則出棧 s.pop(); } } if (flag == 1) cout << "YES" << endl; else cout << "NO/n"; } return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注