AT_abc121_d [ABC121D] XOR World
Description
[problemUrl]: https://atcoder.jp/contests/abc121/tasks/abc121_d
$ f(A,\ B) $ を $ A,\ A+1,\ ...,\ B $ の排他的論理和としたとき、$ f(A,\ B) $ を求めてください。
排他的論理和とは
整数 $ c_1,\ c_2,\ ...,\ c_n $ のビットごとの排他的論理和 $ y $ は、以下のように定義されます。
- $ y $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ c_1,\ c_2,\ ...,\ c_n $ のうち、二進表記した際の $ 2^k $ の位の数が $ 1 $ となるものが奇数個ならば $ 1 $、偶数個ならば $ 0 $ である。
例えば、$ 3 $ と $ 5 $ の排他的論理和は $ 6 $ です(二進数表記すると: `011` と `101` の排他的論理和は `110` です)。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ A $ $ B $
Output Format
$ f(A,\ B) $ を計算し、出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 0\ \leq\ A\ \leq\ B\ \leq\ 10^{12} $
### Sample Explanation 1
$ 2,\ 3,\ 4 $ は $ 2 $ 進数でそれぞれ `010`, `011`, `100` です。 これらの排他的論理和は `101` であり、これを $ 10 $ 進数表記にすると $ 5 $ になります。