题目描述
有 n 张卡牌,它们的点数是 n 的一个排列。请按以下步骤进行操作:
- 首先将这副牌分为两堆:牌堆 A 从顶到底分别是原牌堆的第 1 张到第 k 张牌,牌堆 B 从顶到底分别是原牌堆的第 k+1 张到第 n 张牌。
- 接下来,从牌堆 A 开始,轮流从两个牌堆中取出各自牌堆顶部的一张牌,放到新牌堆 C 的底部(初始时 C 为空),直到其中一个牌堆被抽完为止。
- 最后,将 A 或 B 中剩余的卡牌按顺序依次放到新牌堆 C 的底部。
请你输出最终 C 牌堆从顶到底每一张牌的编号。
输入格式
第一行:输入两个整数 n,k,含义与题目中相同。
第二行:输入 n 个整数 a1,a2,...,an,分别表示初始牌堆每张牌的点数。
输出格式
输出 n 个整数,分别表示 C 牌堆从顶到底每张牌的点数,以空格分隔。
6 2
1 2 3 4 5 6
1 3 2 4 5 6
7 1
1 5 2 3 6 7 4
1 5 2 3 6 7 4
12 6
10 7 9 5 11 6 12 8 4 3 2 1
10 12 7 8 9 4 5 3 11 2 6 1
样例 1 解释
首先将初始牌堆分成两堆:A={1,2} 和 B={3,4,5,6}。
轮流从两个牌堆中取出牌堆顶部的一张牌,放到新牌堆的底部:
初始时 C={};
第一次抽牌,A={2},B={3,4,5,6},C={1};
第二次抽牌,A={2},B={4,5,6},C={1,3};
第三次抽牌,A={},B={4,5,6},C={1,3,2};
此时终止抽牌,并将 B 中剩余卡牌按顺序放到 C 的底部,C={1,3,2,4,5,6}。
数据范围与约定
对于全部数据,满足 1≤n≤2000,1≤k≤n。各测试点的详细数据范围见下表。
| 测试点 |
n |
特殊性质 |
| 1∼4 |
≤100 |
k=1 |
| 5∼8 |
k=2n 且 n 为偶数 |
| 9∼12 |
≤2000 |
| 13∼15 |
≤100 |
无 |
| 16∼20 |
≤2000 |