Bajtopa 是 Bajtocja 行星上的一个大陆。大陆上有许多国家,为了简化起见,这些国家被依次编号为从 $A$ 到 $B$(包含 $A$ 和 $B$)的非负整数。该区间内的每个数字都恰好对应一个国家,而其他数字(小于 $A$ 或大于 $B$ 的数字)则对应位于其他大陆的国家。Bajtopa 各国的政府意识到,它们的进一步发展需要整合。因此,它们结成了一个经济和政治联盟,称为 Bajtopejska 联盟。
迄今为止,Bajtopa 各国之间唯一的交通方式是公路。现在是时候彻底改变这一点了:Bengen 区域项目旨在建立一个航空网络,保证联盟内任意两个国家之间都能进行通信(不一定是直接通信)。
当然,大家一致决定该网络应尽可能便宜。在编号为 $x$ 和 $y$ 的国家之间建立航空连接的成本为 $x \oplus y$ Bajtalar,其中 $\oplus$ 表示异或(xor)运算:$x \oplus y$ 的第 $i$ 位为 1 当且仅当 $x$ 和 $y$ 的第 $i$ 位中恰好有一个为 1。
联盟政府希望在开始协商 Bengen 区域项目的细节之前了解建设网络的成本。请帮助他们编写一个程序来确定该成本。
输入格式
输入的第一行包含一个自然数 $q$ ($1 \le q \le 100\,000$),表示数据组数。接下来的 $q$ 行每行包含一组数据,每组数据由两个非负整数 $A$ 和 $B$ ($0 \le A \le B \le 10^{16}$) 组成。
输出格式
你的程序应输出 $q$ 行。第 $i$ 行应包含第 $i$ 组数据的答案。每组数据的答案是一个整数,即建立 Bengen 区域所需的最小总成本。
样例
样例输入 1
1 2 5
样例输出 1
8
说明 1
Bajtopa 的国家编号为 $\{2, 3, 4, 5\}$。只需建立三条航空连接:国家 2 和 3 之间(成本:$2 \oplus 3 = 1$),国家 2 和 4 之间(成本:$2 \oplus 4 = 6$),以及国家 4 和 5 之间(成本:$4 \oplus 5 = 1$)。因此,建立网络的总成本为 $1 + 6 + 1 = 8$ Bajtalar。
子任务
测试集分为以下子任务。每个子任务的测试由一组或多组独立的测试用例组成。
| 子任务 | 条件 | 分值 |
|---|---|---|
| 1 | $q = 1, B - A \le 500$ | 9 |
| 2 | $q = 1, A = 0$ 且 $B \le 200\,000$ | 12 |
| 3 | $q = 1, B - A \le 200\,000$ | 15 |
| 4 | $A = 0$ | 18 |
| 5 | $q = 1, A \le 100\,000$ | 12 |
| 6 | $q = 1$ | 11 |
| 7 | 无额外限制 | 23 |