彩虹瓶的制作过程是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装N种颜色的小球。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。当一种颜色装填完以后,先看看货架顶端的一箱是不是下一个要装填的颜色,如果是就取下来装填,否则去工厂里再搬一箱过来。如果工厂里发货的顺序比较好,工人就可以顺利地完成装填。例如要按顺序装填7种颜色,工厂按照4这个顺序发货,则工人先拿到6两种不能装填的颜色,将其按照7在下、6在上的顺序堆在货架上;拿到1时可以直接装填;拿到3时又得临时码放在6号颜色箱上;拿到2时可以直接装填;随后从货架顶取下3进行装填;然后拿到临时码放到6上面;最后取了4号颜色直接装填;剩下的工作就是顺序从货架上取下7依次装填。但如果工厂按照7这个顺序发货,工人就必须要愤怒地折腾货架了,因为装填完2号颜色以后,不把货架上的多个箱子搬下来就拿不到3号箱,就不可能顺利完成任务。货架的容量有限,如果要堆积的货物超过容量,工人也没办法顺利完成任务。例如工厂按照1这个顺序发货,如果货架够高,能码放6只箱子,那还是可以顺利完工的;但如果货架只能码放5只箱子,工人就又要愤怒了……本题就请你判断一下,工厂的发货顺序能否让工人顺利完成任务。输入格式:输入首先在第一行给出3个正整数,分别是彩虹瓶的颜色数量N、临时货架的容量M、以及需要判断的发货顺序的数量K。随后K行,每行给出N个数字,是1到N的一个排列,对应工厂的发货顺序。一行中的数字都以空格分隔。输出格式:对每个发货顺序,如果工人可以愉快完工,就在一行中输出YES;否则输出NO。输入样例:753761325431542677654321输出样例:YESNONO
思路:对于栈的模拟,要先处理货架,再处理工厂,过程中不能超过栈的容量
#include 文章为作者独立观点,不代表 股票程序化软件自动交易接口观点