#2643. 洗牌
洗牌
题目描述
魔术师刘谦要洗牌了,请你写个程序来模拟洗牌的过程。
洗牌分弹牌和切牌两个操作:
弹牌——将牌组等分成两份,然后交错相插,如当前牌为 ,现在开始弹牌,先将牌分成 和 ,然后交错相插,变成 。
切牌——从牌堆里面拿出连续的一段,然后放到顶端。如当前牌为 ,切完 ~ 之间的 张牌后变成 。
输入格式
第一行为两个正整数 和 , 表示牌堆里面有 张牌, 表示共进行 次洗牌的操作。
第二行有 个正整数,代表 张牌上的数字,刘谦用的牌其实就是标有数字的卡片。
接下来 行,每行一个整数或者三个整数。
如果第一个数为 ,那么这一行就这只有一个数,表示弹牌。
如果第一个数为 ,那么后面跟着两个正整数 和 ,表示把 ~ 这段牌切到顶端。
输出格式
输出 次操作后从第一张开始的每张牌上的数字。
相邻两数严格用一个空格隔开。
样例
样例输入
10 5
46 21 22 1 20 46 50 7 42 19
1 4 8
1 4 4
1 4 7
0
0
样例输出
46 22 1 21 7 42 20 50 46 19
数据范围与提示
,,且 为偶数;
每张牌上标的数为不超过 的正整数,读入一行洗牌指令时应先读一个数,然后判断这个数是 还是 ,如果是 则再读 个数。另外你在记录牌的时候可以使用两个以上的数组!
相关
在以下作业中: