#P0602. 循环删除

循环删除

题目描述

有一排 nn 个数据(编号 11nn),不断循环执行以下删除操作,直到剩余数据个数 k≤ k

  • 从当前数据中,删除所有位置为奇数的数据(从 11 开始计数),然后重新顺序拼凑在一起
  • 如果剩余数据仍 >k> k,再删除所有位置为偶数的数据,然后重新顺序拼凑在一起。

如此交替进行。

请编写程序,输入 nnkk,输出最后剩下的数据的初始编号(顺序输出)。

输入格式

第一行一个整数 tt,表示有 tt 组数据。

接下来 tt 行,每行两个正整数 nnkk

输出格式

共有 tt 行,每行输出剩下的数据的初始编号。

样例

3
10 3
20 4
5000 5
2 6 10
6 14
342 1366 2390 3414 4438

样例解释

对于第 11 组数据:

初始时,队列中有 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10][1,\ 2,\ 3,\ 4,\ 5,\ 6,\ 7,\ 8,\ 9,\ 10],删除所有位置为奇数的数,剩下 [2, 4, 6, 8, 10][2,\ 4,\ 6,\ 8,\ 10]

接下来,队列中有 [2, 4, 6, 8, 10][2,\ 4,\ 6,\ 8,\ 10],删除所有位置为偶数的数,剩下 [2, 6, 10][2,\ 6,\ 10]

数据范围

对于 100%100\% 的数据,保证 1t10001≤t≤10001n50001≤n≤50001kn1\le k\le n