问题1440--洗牌

1440: 洗牌

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小明把n(n为偶数)张牌按编号顺序1,2,3,...,n排成一堆,然后开始洗牌。一次洗牌的过程如下:

1 对于一堆牌编号为a1,a2,...,an,首先把牌分成均匀的两堆:a1,a2,..am,am+1,am+2,...an(其中m=n/2)

2然后按顺序交叉插入:a1,am+1,a2,am+2,...am,an

洗牌过程共重复了k次,请你编程帮助小明模拟洗牌的过程。牌堆的初始顺序是a1,a2,...,an。例如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,分别表示牌的数量,洗牌的次数,牌的位置。
对于100%的数据,1<=n,k<=1000,1<=i<=n,题目保证n是偶数。

输出

n张牌洗过k次后,牌堆中第i张牌的编号。

样例输入 Copy

6 2 5

样例输出 Copy

2

来源/分类