02-线性结构4 Pop Sequence (25分)
来源:互联网 发布:vim教程 知乎 编辑:程序博客网 时间:2024/05/19 01:59
02-线性结构4 Pop Sequence (25分)
Given a stack which can keep MM numbers at most. Push NN numbers in the order of 1, 2, 3, …, NN and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if MM is 5 and NN is 7, we can obtain 1, 2, 3, 4, 5, 6, 7 from the stack, but not 3, 2, 1, 7, 5, 6, 4.
Input Specification:
Each input file contains one test case. For each case, the first line contains 3 numbers (all no more than 1000): MM (the maximum capacity of the stack), NN (the length of push sequence), and KK (the number of pop sequences to be checked). Then KK lines follow, each contains a pop sequence of NN numbers. All the numbers in a line are separated by a space.
Output Specification:
For each pop sequence, print in one line “YES” if it is indeed a possible pop sequence of the stack, or “NO” if not.
Sample Input:
5 7 5
1 2 3 4 5 6 7
3 2 1 7 5 6 4
7 6 5 4 3 2 1
5 6 4 3 7 2 1
1 7 6 5 4 3 2
Sample Output:
YES
NO
NO
YES
NO
#include <iostream>#include <vector>#include <stack>#include <set>using namespace std;int main(){ int stackSize; int nums; int n; int tempNum; cin>>stackSize>>nums>>n; stack<int> s; set<int> numCan; bool flag = true; int arr[1010]; for(int i = 0; i < n; i++){ for(int k = 0; k < nums; k++){ numCan.insert(k+1); } for(int q = 0; q <nums;q++){ cin>>arr[q]; } for(int j = 0; j < nums && flag;j++){ tempNum = arr[j]; for(int p = 1;p <= tempNum && flag;p++) { if (numCan.find(p) != numCan.end()) { if (s.size() < stackSize) { s.push(p); numCan.erase(p); } else { flag = false; cout << "NO" << endl; } } } if(flag){ int temp = s.top(); s.pop(); if(temp != tempNum && flag){ flag = false; cout<<"NO"<<endl; } } } if(flag){ cout<<"YES"<<endl; } flag = true; numCan.clear(); while(s.size() != 0){ s.pop(); } }}
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分) (栈)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构4 Pop Sequence(25 分)
- 02-线性结构4 Pop Sequence (25分)
- 02-线性结构3 Pop Sequence (25分)
- swustoj表达式转换(0309)
- 代码Review那些事
- Beat
- EF code first初始化创建数据库初探
- Mac OS X配置react-native遇到的坑
- 02-线性结构4 Pop Sequence (25分)
- Hibernate中配置文件中设置数据库信息
- 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子
- Continuous Subarray Sum
- 中缀表达式转后缀表达式(考虑优先级)
- Bootstrap 滚动条
- 【[Offer收割]编程练习赛13 D】骑士游历(矩阵快速幂模板)
- C++分割字符串(以逗号分隔符为例,分割得到相应数字)
- JAVA设计模式之单例模式