PAT (Advanced Level) Practice 1051 Pop Sequence (25 分) 凌宸1642
题目描述:
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.
译:给定一个做多能够存储 M 个数字的栈。将 N 个数字按照 1, 2, 3, …, N 的顺序入栈,并且出栈随机。你应该说明给定的一个数字序列是否是这个栈的一种可能的出栈的顺序 。例如,如果 M 是 5 , N 为 7 , 我们可以从这个栈获得出栈序列 1, 2, 3, 4, 5, 6, 7 但是不能获得序列 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.
译:每个输入文件包含一个测试用例。对于每个用例,第一行包含 3 个数字(都不超过 1000) :M (栈的最大容量) , N(入栈的序列长度) , 和 K(需要查验的序列总数)。接下来 N 行,每行包含一个 N 个数字的出栈的序列。所有在一行的数字用空格隔开。
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.
译:对于每个出栈序列,如果确实可能是该栈的一个出栈序列,则在一行中打印 YES
,否则打印 NO
。
Sample Input (样例输入):
5 7 5
1 2 3 4 5 6