#6816. 小朋友排队离开

小朋友排队离开

小朋友排队离开

题目描述

学校组织了一次活动。

n 名小朋友从左到右站成一排,每个小朋友都有自己的编号:

1 2 3 ... n

活动开始后,老师每天都会进行一次点名离开操作。

每天操作规则如下:

  1. 从当前队伍的最左侧开始;
  2. 第 1 个小朋友离开;
  3. 跳过 2 个小朋友后,下一个小朋友离开;
  4. 按照相同规则继续,直到队伍扫描结束;
  5. 离开的小朋友不再回来;
  6. 剩余的小朋友保持原来的相对顺序,重新排成一队;
  7. 第二天继续执行相同操作。

例如:

当前队伍:

1 2 3 4 5 6 7 8

第一天离开:

1 4 7

剩余:

2 3 5 6 8

第二天继续从新的队伍开始。

现在请你计算:

编号为 k 的小朋友会在第几天离开。


输入格式

输入一行两个整数:

n k

其中:

  • n 表示小朋友总人数;
  • k 表示需要查询的小朋友编号。

输出格式

输出一个整数:

day

表示编号为 k 的小朋友第几天离开。


数据范围

1 ≤ k ≤ n ≤ 10000

样例

输入

10 10

样例解释

初始队伍:

1 2 3 4 5 6 7 8 9 10

第一天

从第1个开始,每隔两个小朋友离开一个。

离开的编号:

1 4 7 10

因为10号小朋友是第10个位置:

1 2 3 4 5 6 7 8 9 10
↑     ↑     ↑      ↑
1     4     7     10

所以:

编号为10的小朋友在第1天离开。

输出:

1

样例2

输入

8 8

过程:

初始:

1 2 3 4 5 6 7 8

第一天:

离开:

1 4 7

剩余:

2 3 5 6 8

第二天:

当前队伍:

2 3 5 6 8

离开:

2 6

剩余:

3 5 8

第三天:

当前队伍:

3 5 8

离开:

3 8

所以:

8号小朋友第三天离开。

输出:

3

相关

在以下作业中:

递推