#3616. 模拟8回收坐标 (jump)

模拟8回收坐标 (jump)

回收坐标 (jump)

题目描述

一枚自动探针位于数轴上的整数坐标 x0x_0。控制中心希望它最终停在目标坐标 nn

从第 00 秒开始,若当前第 ii 秒探针的位置为 xix_i,则下一秒按照下面规则移动:

  • xi>nx_i>n,探针会启动回收程序,到达 xi+1=xi2x_{i+1}=\left\lfloor\frac{x_i}{2}\right\rfloor
  • xi<nx_i<n,探针会向右微调一步,到达 xi+1=xi+1x_{i+1}=x_i+1
  • xi=nx_i=n,探针停止移动,之后位置保持不变。

请你求出最小的 ii,使得 xi=nx_i=n

输入格式

在文件 jump.in 中读入。 一行两个正整数 nn , x0x_0,分别表示目标坐标和初始坐标。

输出格式

在文件 jump.out 中输出。 输出一行一个整数,表示探针到达目标坐标所需的移动次数。

样例

输入数据1

10 12

输出数据1

5

提示

数据范围与提示

样例 1 解释: 位置变化为:1267891012 \to 6 \to 7 \to 8 \to 9 \to 10,因此答案为 55

数据范围

对于部分的数据,1n, x01041 \le n,\ x_0 \le 10^4。 对于全部的数据,1n, x01091 \le n,\ x_0 \le 10^9