洗牌2

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

魔术师刘谦要洗牌了,请你写个程序来模拟洗牌的过程。 洗牌分弹牌和切牌两个操作: 弹牌——将牌组等分成两份,然后交错相插,如当前牌为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),表示把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

提示

  1. M≤5,N≤54,且N为偶数;
  2. 每张牌上标的数为不超过54的正整数;
  3. 读入一行洗牌指令时应先读一个数,然后判断这个数是0还是1,如果是1则再读2个数;

小迪老师-一维数组存储、遍历、元素移动

未认领
状态
已结束
题目
13
开始时间
2025-9-14 0:00
截止时间
2025-9-28 23:59
可延期
24 小时