题目描述
整数 L,R が与えられます. 以下の条件を満たす整数の組 (A,B) の個数を数えてください.
- L ≤ A < B ≤ R
- A は A ⊕ B で割り切れる.
- B は A ⊕ B で割り切れる.
ただしここで ⊕ はビット単位 XOR 演算を表します.
ビット単位 XOR 演算とは 非負整数 A, B のビット単位 XOR 、A ⊕ B は、以下のように定義されます。
- A ⊕ B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 ⊕ 5 = 6 となります (二進表記すると: 011 ⊕ 101 = 110)。
一般に k 個の非負整数 p1, p2, p3, …, pk のビット単位 XOR は $ (\dots\ ((p_1\ \oplus\ p_2)\ \oplus\ p_3)\ \oplus\ \dots\ \oplus\ p_k) $ と定義され、これは p1, p2, p3, …, pk の順番によらないことが証明できます。
输入格式
入力は以下の形式で標準入力から与えられる.
L R
输出格式
答えを出力せよ.
题目大意
求满足以下条件的整数对 (A,B) 的个数(这里 ⊕ 表示按位异或):
数据范围:
3 6
2
1 100
124
999000000 1000000000
1726239
提示
制約
- 1 ≤ L < R ≤ 1018
- R−L ≤ 106
- 入力される値はすべて整数である
Sample Explanation 1
(A,B)=(4,5) と (A,B)=(4,6) が条件を満たします.