贪心 · 例10-Bits
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}本题翻译自 [Codeforces Round 276 (Div. 1)] Bits

\hspace{15pt}对于给定的区间 lr ,求解区间内二进制下 \texttt{ 最多的那个数字。

\hspace{15pt}你需要处理多组询问。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^5\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}在一行上输入两个整数 l, r \left(0\leqq l\leqq r\leqq 10^{18}\right) 代表区间的左右端点。

输出描述:

\hspace{15pt}对于每一组测试数据,在一行上输出一个整数,代表区间内二进制下 \texttt{ 最多的那个数字。

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
3
1 2
2 4
1 10

输出

复制
1
3
7

说明

\hspace{15pt}十进制 110 的二进制表示如下:

\hspace{23pt}\bullet\,十进制 (1)_{10} 等于二进制 (1)_{2}

\hspace{23pt}\bullet\,十进制 (2)_{10} 等于二进制 (10)_{2}

\hspace{23pt}\bullet\,十进制 (3)_{10} 等于二进制 (11)_{2}

\hspace{23pt}\bullet\,十进制 (4)_{10} 等于二进制 (100)_{2}

\hspace{23pt}\bullet\,十进制 (5)_{10} 等于二进制 (101)_{2}

\hspace{23pt}\bullet\,十进制 (6)_{10} 等于二进制 (110)_{2}

\hspace{23pt}\bullet\,十进制 (7)_{10} 等于二进制 (111)_{2}

\hspace{23pt}\bullet\,十进制 (8)_{10} 等于二进制 (1000)_{2}

\hspace{23pt}\bullet\,十进制 (9)_{10} 等于二进制 (1001)_{2}

\hspace{23pt}\bullet\,十进制 (10)_{10} 等于二进制 (1010)_{2}