#L0308. 交替洗牌

交替洗牌

题目描述

有一副共 nn 张的牌,编号为 1n1 \sim n

给定一个参数 kk,执行一次洗牌操作:

  • 将牌分成两堆:牌堆 A 包含第 11 到第 kk 张,牌堆 B 包含第 k+1k+1 到第 nn 张。
  • 从牌堆 A 开始,轮流从两个牌堆顶部各取一张牌放到新牌堆底部,直到某一堆取完。
  • 把剩余那堆的牌按原顺序全部接到新牌堆底部。

初始时从顶到底第 ii 张的编号为 aia_i,输出洗牌后新牌堆从顶到底每张牌的编号。

输入格式

第一行输入两个用空格分隔的正整数 n,kn,k

第二行输入 nn 个用空格分隔的正整数,第 ii 个表示当前牌堆中从顶到底第 ii 张牌的编号。

保证编号都是 1n1\sim n 的正整数,且每个编号恰好出现一次。

输出格式

输出一行 nn 个用空格分隔的正整数,表示洗牌后新牌堆从顶到底每张牌的编号。

样例

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 解释

kk 分成两堆:{1,2}\{1,2\}{3,4,5,6}\{3,4,5,6\}

轮流取牌:

  • 第一次:A 取 11,B 取 33,新牌堆 {1,3}\{1,3\}
  • 第二次:A 取 22,B 取 44,新牌堆 {1,3,2,4}\{1,3,2,4\}

A 取完,把 B 剩余 {5,6}\{5,6\} 接上,结果 {1,3,2,4,5,6}\{1,3,2,4,5,6\}

样例 2 解释

此样例满足测试点 161\sim 6 的限制。

样例 3 解释

此样例满足测试点 7127\sim 12 的限制。

数据范围与约定

对于全部数据,1n20001\le n\le 20001kn1\le k\le n

测试点$n$特殊性质
$1\sim 4$$\le 100$$k=1$
$5\sim 8$$\le 100$$k=\frac{n}{2}$ 且 $n$ 为偶数
$9\sim 12$$\le 2000$$k=\frac{n}{2}$ 且 $n$ 为偶数
$13\sim 15$$\le 100$
$16\sim 20$$\le 2000$
难度 入门
通过率
尝试 0
已通过 0
ID
1036
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者