跳转至

无限二叉树上的距离

预估时间限制:0.5 秒。内存限制:128 MB。

实际时限以标准程序在目标评测环境的最慢用例中位时间乘以 \(2\) ,按 \(0.5\) 秒向上取整。参考环境见评测说明。

背景故事

你在解谜游戏中搭建了一棵用正整数编号的无限二叉树。白兔准备沿树上的道路旅行,请你回答不同地点之间需要走多少条边。

形式化问题描述

无向图的顶点集合为所有正整数。对每个正整数 \(i\) ,恰有边连接 \(i\) 与 \(2i\) ,以及 \(i\) 与 \(2i+1\) ,没有其他边。

对每次询问给出的 \(a,b\) ,求从顶点 \(a\) 到顶点 \(b\) 的最短路边数。允许 \(a=b\) ,此时答案为零。

无限二叉树前四层及从一号到十号顶点的路径

图中只画出前四层。路径 \(1\to2\to5\to10\) 包含三条边。

输入格式

第一行一个整数 \(m\) ,表示询问数。接下来 \(m\) 行,每行两个整数 \(a,b\) .

输出格式

对第 \(i\) 次询问,输出一行 Case #i: ans ,将 i 和 ans 替换为询问编号和答案。编号从 \(1\) 开始,冒号后恰有一个空格。

样例

样例 1

输入

6
1 10
5 5
10000 10001
2 4
2 5
50000 60000

输出

Case #1: 3
Case #2: 0
Case #3: 2
Case #4: 1
Case #5: 1
Case #6: 28

样例 2

输入

4
1 1000000000000000000
576460752303423488 576460752303423487
1000000000000000000 1000000000000000000
576460752303423488 864691128455135232

输出

Case #1: 59
Case #2: 117
Case #3: 0
Case #4: 118

样例 3

输入

1
1 1

输出

Case #1: 0

样例解释

样例 1 中,\(10000\) 与 \(10001\) 的父亲都是 \(5000\) ,因此距离为 \(2\) .顶点与自身之间的距离为零。样例 2 包含大编号和跨越根节点两侧的路径。

数据范围与保证

对 100% 的数据:\(1\le m\le10^5\) ,\(1\le a,b\le10^{18}\) .

分值比例 额外条件
100% 无额外条件