B4138 [信息与未来 2016] 洗牌
题目描述
小明把 $n$($n$ 为偶数)张牌按编号顺序 $1,2,3,\dots ,n$ 排成一堆,然后开始洗牌。一次洗牌的过程如下:
1. 对于一堆编号为 $a_1,a_2,\dots,a_n$,首先将牌分成均匀的两堆:$a_1,a_2,\dots,a_m$ 和 $a_{m+1},a_{m+2},\dots,a_n$(其中 $m=\frac{n}{2}$)。
1. 然后按顺序交叉插入:$a_1,a_{m+1},a_2,a_ {m+2},\dots,a_m,a_n$。
洗牌过程总共重复了 $k$ 次,请你编程帮助小明模拟洗牌的过程。
例如 $n=6$,初始时,牌堆中牌的编号为 $1,2,3,4,5,6$。
首次洗牌时,会将牌分成 $1,2,3$ 和 $4,5,6$ 两堆,交叉插入后的结果为 $1,4,2,5,3,6$。
再次洗牌,会将牌分成 $1,4,2$ 和 $5,3,6$ 两堆,交叉插入后,得到 $1,5,4,3,2,6$。
输入格式
一行,正整数 $n,k,i$,分别代表牌的数量、洗牌的次数、和牌的位置。
输出格式
$n$ 张牌洗牌 $k$ 次后,牌堆中第 $i$ 张牌的编号。
说明/提示
对于 $100\%$ 的数据,$1\leq n,k\leq 1000,1\leq i\leq n$。
保证 $n$ 是偶数。
>本题原始满分为 $20\text{pts}$。