基础实验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)
还没有任何评论哟~
