AT_agc061_a [AGC061A] Long Shuffle
题目描述
有一个数组 $A_1,\ \ldots,\ A_N$,初始时对于所有 $i$,都有 $A_i = i$。定义操作 $\mathrm{shuffle}(L,\ R)$ 如下:
- 如果 $R = L + 1$,则交换 $A_L$ 和 $A_R$ 的值,然后结束操作。
- 否则,先执行 $\mathrm{shuffle}(L,\ R - 1)$,再执行 $\mathrm{shuffle}(L + 1,\ R)$。
现在要执行一次 $\mathrm{shuffle}(1,\ N)$。请输出操作结束后 $A_K$ 的值。
对于每个输入文件,需要解答 $T$ 个测试用例。
输入格式
输入从标准输入读入,格式如下:
> $T$
> $case_1$
> $case_2$
> $\vdots$
> $case_T$
每个测试用例格式如下:
> $N\ K$
输出格式
输出共 $T$ 行。第 $i$ 行输出第 $i$ 个测试用例的答案。
说明/提示
### 数据范围
- $1 \leq T \leq 1000$
- $2 \leq N \leq 10^{18}$
- $1 \leq K \leq N$
### 样例解释 1
当 $N=2$ 时,执行如下操作得到 $A=(2,1)$。
- 执行 $\mathrm{shuffle}(1,2)$,交换 $A_1$ 和 $A_2$。
当 $N=5$ 时,执行如下操作得到 $A=(2,4,1,5,3)$。
- 执行 $\mathrm{shuffle}(1,5)$。
- 执行 $\mathrm{shuffle}(1,4)$。
- 执行 $\mathrm{shuffle}(1,3)$。
- $\vdots$
- 执行 $\mathrm{shuffle}(2,4)$。
- $\vdots$
- 执行 $\mathrm{shuffle}(2,5)$。
- 执行 $\mathrm{shuffle}(2,4)$。
- $\vdots$
- 执行 $\mathrm{shuffle}(3,5)$。
- $\vdots$
由 ChatGPT 4.1 翻译