atcoder#AGC061A. [AGC061A] Long Shuffle

[AGC061A] Long Shuffle

配点 : 500500

問題文

配列 A1,,ANA_1, \ldots, A_N があり、はじめ全ての ii について Ai=iA_i = i です。手順 shuffle(L,R)\mathrm{shuffle}(L, R) を以下として定義します。

  • R=L+1R = L + 1 なら、ALA_LARA_R の値を入れ替えて終了する。
  • そうでないなら、shuffle(L,R1)\mathrm{shuffle}(L, R - 1) を実行してから shuffle(L+1,R)\mathrm{shuffle}(L + 1, R) を実行する。

shuffle(1,N)\mathrm{shuffle}(1, N) を行うとします。手順終了後の AKA_K の値を出力してください。

各入力ファイルについて、テストケースを TT 個解いてください。

制約

  • 1T10001 \leq T \leq 1000
  • 2N10182 \leq N \leq 10^{18}
  • 1KN1 \leq K \leq N

入力

入力は、標準入力から以下の形式で与えられる。

TT

case1case_1

case2case_2

\vdots

caseTcase_T

各ケースは、以下の形式である。

NN KK

出力

TT 行出力せよ。ii 行目に、ii 個目のテストケースの答えを出力すること。

7
2 1
2 2
5 1
5 2
5 3
5 4
5 5
2
1
2
4
1
5
3

N=2N=2 のときは、以下を行って A=(2,1)A=(2,1) を得ます。

  • shuffle(1,2)\mathrm{shuffle}(1, 2) を実行し、A1A_1A2A_2 を入れ替える。

N=5N=5 のときは、以下を行って A=(2,4,1,5,3)A=(2,4,1,5,3) を得ます。

  • shuffle(1,5)\mathrm{shuffle}(1, 5) を実行する。- shuffle(1,4)\mathrm{shuffle}(1, 4) を実行する。- shuffle(1,3)\mathrm{shuffle}(1, 3) を実行する。- \vdots
    • shuffle(2,4)\mathrm{shuffle}(2, 4) を実行する。- \vdots
    • shuffle(2,5)\mathrm{shuffle}(2, 5) を実行する。- shuffle(2,4)\mathrm{shuffle}(2, 4) を実行する。- \vdots
    • shuffle(3,5)\mathrm{shuffle}(3, 5) を実行する。- \vdots
  • shuffle(1,4)\mathrm{shuffle}(1, 4) を実行する。
  • shuffle(1,3)\mathrm{shuffle}(1, 3) を実行する。
  • \vdots
  • shuffle(2,4)\mathrm{shuffle}(2, 4) を実行する。
  • \vdots
  • shuffle(2,5)\mathrm{shuffle}(2, 5) を実行する。
  • shuffle(2,4)\mathrm{shuffle}(2, 4) を実行する。
  • \vdots
  • shuffle(3,5)\mathrm{shuffle}(3, 5) を実行する。
  • \vdots