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

输出样例:





代码:

复制代码
    #include<iostream>
    #include<string>
    #include<cstdio>
    #include<cmath>
    #include

全部评论 (0)

还没有任何评论哟~