#2047. 【提高】洗牌2
【提高】洗牌2
题目描述
魔术师刘谦要洗牌,请你模拟洗牌过程。洗牌有两种操作:
- 弹牌:将牌组等分成前后两半,然后交错相插。例如当前牌为 1 2 3 4 5 6,弹牌后变为 1 4 2 5 3 6。
- 切牌:从牌堆中取出连续的一段,然后放到顶端。例如当前牌为 1 2 3 4 5 6,把第 张切到顶端后变为 2 3 4 5 1 6。
给定初始牌堆和若干次操作,请输出所有操作完成后的牌序。
输入格式
第一行输入两个正整数 ,表示牌堆中有 张牌、共进行 次操作。
第二行输入 个正整数,表示初始牌堆中每张牌上的数字。
接下来 行,每行描述一次操作:
- 若第一个整数为 ,表示弹牌,本行只有这一个整数;
- 若第一个整数为 ,后面跟两个正整数 ,表示把当前位置第 张到第 张这一段牌切到顶端。
输出格式
输出一行 个整数,表示 次操作后的牌序。相邻两个整数之间用一个空格隔开,行末不要输出多余空格。
6 1
1 2 3 4 5 6
0
1 4 2 5 3 6
数据范围与提示
- ,且 为偶数。
- 每张牌上的数字为不超过 的正整数。
- 读入操作时应先读第一个整数,再根据它是 还是 判断是否继续读取 。
来源
数组问题