You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
小A有n只编号为1,2,3,...,n−1,n的狗狗。初始时,狗狗们按编号升序排列在位置上(位置从1到n)。它们正在玩一个交换游戏,游戏规则如下:
每秒进行一次交换操作。
当秒数为奇数时(第1、3、5...秒),交换位置为 2i−1 和 2i 的狗狗(其中 1≤i≤⌊2n⌋)。
例如,当 n=5 时,初始序列为 1,2,3,4,5,第1秒后(奇数秒),序列变为 2,1,4,3,5。
当秒数为偶数时(第2、4、6...秒),交换位置为 2i 和 2i+1 的狗狗(其中 1≤i≤⌊2n−1⌋)。
例如,当 n=5 且当前序列为 2,1,4,3,5(第1秒后),第2秒(偶数秒)后,序列变为 2,4,1,5,3。
小A想知道,经过k秒后,编号为q的狗狗位于哪个位置?
输入描述
输入包含多个测试用例。第一行是整数 t(1≤t≤105),表示测试用例的数量。
每个测试用例占一行,包含三个整数 n,k,q(1≤n,k,q≤109)。
输出描述
对每个测试用例,输出一个整数,表示经过k秒后,编号为q的狗狗所在的位置。
示例输入
3
5 1 3
5 2 3
6 1 4
示例输出
4
5
3
示例解释
第一个测试用例:初始序列为 1,2,3,4,5。1秒后(奇数秒),交换位置1−2和3−4,序列变为 2,1,4,3,5。编号为3的狗狗位于位置4。
第二个测试用例:2 秒后(第2秒是偶数秒),在1秒后的序列 2,1,4,3,5 基础上,交换位置2−3和4−5(注意 i≤⌊(5−1)/2⌋=2,即i=1时交换2−3,i=2时交换4−5),序列变为 2,4,1,5,3。编号为3的狗狗位于位置5。
第三个测试用例:n=6,k=1(奇数秒),交换位置1−2、3−4、5−6(因为 ⌊6/2⌋=3),初始序列 1,2,3,4,5,6 变为 2,1,4,3,6,5。编号为4的狗狗位于位置3。
限制与约定
对于 40%的样例,保证 1≤t≤10
n,k,q(1≤n,k,q≤100)。
对于 100%的样例,保证 1≤t≤105
n,k,q(1≤n,k,q≤109)
- 时间限制: 1s
- 空间限制: 256MB