题目描述
整数 N,L,R が与えられます. 以下の条件を両方満たす整数 x の個数を数えてください.
- L ≤ x ≤ R
- (x ⊕ N) < N (ここで ⊕ はビット単位 XOR 演算を表す)
ビット単位 XOR 演算とは 整数 A, B のビット単位 XOR 、A ⊕ B は、以下のように定義されます。
- A ⊕ B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 ⊕ 5 = 6 となります (二進表記すると: 011 ⊕ 101 = 110)。
输入格式
入力は以下の形式で標準入力から与えられる.
N L R
输出格式
答えを出力せよ.
题目大意
给定三个正整数 N,L,R,询问满足如下条件的整数 x 的个数:
其中 ⊕ 是按位异或运算。
2 1 2
1
10 2 19
10
1000000000000000000 1 1000000000000000000
847078495393153025
提示
制約
- 1 ≤ N ≤ 1018
- 1 ≤ L ≤ R ≤ 1018
- 入力される値はすべて整数である
Sample Explanation 1
x=1 の場合,L ≤ x ≤ R は満たしますが,(x ⊕ N) < N は満たしません. x=2 の場合,両方の条件を満たします. 他に条件を満たす x は存在しません.