CHDOJ
首页
题库
题单
比赛
评测
用户
讨论
帮助
工具
云剪贴板
树图画板
代码对比
登录
注册
1760: 【提高】洗牌2
时间限制:1000 ms
内存限制:128 MB
上传者:
提交:47
通过:20
提交
提交记录
讨论
统计
题目描述
魔术师刘谦要洗牌了,请你写个程序来模拟洗牌的过程。
洗牌分弹牌和切牌两个操作:
弹牌——将牌组等分成两份,然后交错相插,如当前牌为1 2 3 4 5 6,现在开始弹牌,先将牌分成1 2 3和4 5 6,然后交错相插,变成1 4 2 5 3 6
切牌——从牌堆里面拿出连续的一段,然后放到顶端。如当前牌为1 2 3 4 5 6,切完2~5之间的4张牌后变成2 3 4 5 1 6。
输入格式
第一行为两个正整数N和M,N表示牌堆里面有N张牌,M表示共进行M次洗牌的操作。
第二行有N个正整数,代表N张牌上的数字,刘谦用的牌其实就是标有数字的卡片。
接下来M行,每行一个整数或者三个整数。
如果第一个数为0,那么这一行就这只有一个数,表示弹牌。
如果第一个数为1,那么后面跟着两个正整数b 和e,表示把b~e这段牌切到顶端。
输出格式
输出M次操作后从第一张开始的每张牌上的数字。相邻两数严格用一个空格隔开,行末不能有多余的空格。
输入样例
复制
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
数据范围与提示
分类标签
数组问题