Advertisement

基础实验3-2.4 出栈序列合法 (25分)

阅读量:

假设存在一个堆栈,其最大存储能力为 M,现需将 N 个数值按照 1, 2, 3, …, N 的顺序依次压入栈中,且出栈操作可依据任意顺序进行。在此条件下,哪些数值排列方式是无法实现的?例如,当 M=5、N=7 时,可以生成序列{ 1, 2, 3, 4, 5, 6, 7 },但序列{ 3, 2, 1, 7, 5, 6, 4 }则无法被构造出来。

输入格式:

第一行输入包含 3 个均不超过 1000 的正整数:M(堆栈的最大存储容量)、N(需要入栈的元素数量)、K(需验证的出栈序列数量)。随后的 K 行中,每一行均包含 N 个数字组成的出栈序列,各数字之间通过空格进行分隔。

输出格式:

对于每一条出栈序列,若其属于可实现的合法序列范畴,则在对应行输出YES,反之则输出NO。

输入样例解析

复制代码
    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
    
    
      
      
      
      
      
      
    

输出样例:

复制代码
    YES
    NO
    NO
    YES
    NO
    
    

全部评论 (0)

还没有任何评论哟~