PAT 1051. Pop Sequence (25)

来源:互联网 发布:玩守望网络卡 编辑:程序博客网 时间:2024/05/22 10:02
//1051. Pop Sequence (25)//一定记得进行完之后要将所有的元素都pop出来才能得到正确结果。//acc#include <iostream>#include <stack>using namespace std;int main(){int M, N, K;cin >> M >> N >> K;if (M == 0){cout << "NO";return 0;}stack<int> s;int i;int tmp;int num = 1;int j;int t;bool flag = false;int popnum;for (i = 0;i<K;i++){for (j = 0;j<N;j++){cin >> tmp;if (tmp - num + 1 <= M - s.size()){for (t = num; t <= tmp;t++){s.push(t);}num = tmp + 1;if (s.size() > 0){popnum = s.top();if (popnum == tmp){s.pop();}}}else{if (s.size() > 0 && s.top() == tmp){s.pop();}else{for (;j<N-1;j++){cin >> tmp;}flag = true;cout << "NO"<<endl;break;}}}if (flag == false){cout << "YES"<<endl;}num = 1;flag = false;while(s.empty() == false)s.pop();}return 0;}

0 0
原创粉丝点击