1051. Pop Sequence (25)

来源:互联网 发布:淘宝没有扣分的违规 编辑:程序博客网 时间:2024/05/18 04:51

1051. Pop Sequence (25)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N 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 M is 5 and N 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): M (the maximum capacity of the stack), N (the length of push sequence), and K (the number of pop sequences to be checked). Then K lines follow, each contains a pop sequence of N 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 51 2 3 4 5 6 73 2 1 7 5 6 47 6 5 4 3 2 15 6 4 3 7 2 11 7 6 5 4 3 2
Sample Output:
YESNONOYESNO
堆栈有M个容量(后进先出),现在有M个数,判断的有K组
看是否可以把1~M  这些数通过入栈后出来得到某组,可以YES,反之NO。
这里一开始我弄错了,每个数必须要入栈再出来,比如最后一组数据,
当1进1出以后
堆栈23456这时不够7进再出!!

评测结果

时间结果得分题目语言用时(ms)内存(kB)用户8月11日 23:23答案正确251051C++ (g++ 4.7.2)1356datrilla

测试点

测试点结果用时(ms)内存(kB)得分/满分0答案正确118015/151答案正确13563/32答案正确13082/23答案正确13082/24答案正确13081/15答案正确13042/2

#include<iostream>  #include<stack> using namespace std;  int main(){    stack<int>sta;   int *popL;  int M, N, K,now,index;   bool Ok;  cin >> M >> N >> K;   popL = new int[N];  while (K--)   {     for (index = 0; index < N; index++)cin >> popL[index];    now = 1;    index = 0;    Ok = true;    while (Ok&&index<N)    {             while (sta.empty()|| sta.size()<=M&&popL[index] != sta.top())         sta.push(now++);        if (sta.size() > M)Ok = false;      else      {        sta.pop();         index++;       }    }    if (index==N)cout << "YES" << endl;     else cout << "NO" << endl;     while (!sta.empty())sta.pop();  }  delete[]popL;  system("pause");  return 0;}
0 0
原创粉丝点击