#abc465d. X to Y
X to Y
题目描述
给定整数 、 和一个 以上的整数 。
有一个变量 ,初始时 。你可以对 执行任意多次(也可以 次)下面的操作:
- 选择一个整数 ,使其满足 或 ,然后把 的值替换成 。
其中对实数 , 表示不超过 的最大整数(即向下取整)。
请求出把 变成 所需的最少操作次数。可以证明在本题约束下一定存在有限次操作的方案。
本题有 组测试数据,请对每组分别求解。
输入格式
T
case_1
case_2
...
case_T
其中第 组测试数据 的格式为:
X Y K
输出格式
依次输出每组测试数据的答案,每个答案占一行。
输入示例 1
4
11 9 3
0 0 2
842 180 7
1948706013487601 48019760148910476 89014537
输出示例 1
2
0
7
5
示例 1 说明
以第 组为例(,,),可以用 步完成:
- 取 。因为 $\left\lfloor \dfrac{x}{K} \right\rfloor = \left\lfloor \dfrac{11}{3} \right\rfloor = 3$,这一步合法,于是 变成 。
- 取 。因为 $\left\lfloor \dfrac{y}{K} \right\rfloor = \left\lfloor \dfrac{9}{3} \right\rfloor = 3 = x$,这一步合法,于是 变成 。
可以证明少于 步做不到,所以答案是 。
第 组中 ,一步都不用做,答案是 。
第 组中 、、 都非常大,答案可能来自很深的层级,注意所有变量都要用 64 位整数。
约束条件
- 所有输入值均为整数