100 atcoder#ABC121D. [ABC121D] XOR World

[ABC121D] XOR World

题目描述

f(A, B) f(A,\ B) A, A+1, ..., B A,\ A+1,\ ...,\ B の排他的論理和としたとき、f(A, B) f(A,\ B) を求めてください。

排他的論理和とは

整数 c1, c2, ..., cn c_1,\ c_2,\ ...,\ c_n のビットごとの排他的論理和 y y は、以下のように定義されます。

  • y y を二進表記した際の 2k 2^k (k  0 k\ \geq\ 0 ) の位の数は、c1, c2, ..., cn c_1,\ c_2,\ ...,\ c_n のうち、二進表記した際の 2k 2^k の位の数が 1 1 となるものが奇数個ならば 1 1 、偶数個ならば 0 0 である。

例えば、3 3 5 5 の排他的論理和は 6 6 です(二進数表記すると: 011101 の排他的論理和は 110 です)。

输入格式

入力は以下の形式で標準入力から与えられる。

A A B B

输出格式

f(A, B) f(A,\ B) を計算し、出力せよ。

题目大意

题目描述

f(A,B)f(A, B)A,A+1,,BA,\,A+1,\,\dots,\,B 的异或和。求 f(A,B)f(A, B)

什么是异或和?

c1,c2,,cnc_1,\,c_2,\,\dots,\,c_n 的异或和(记做 yy)的定义如下:

  • 二进制下,若 c1,c2,,cnc_1,\,c_2,\,\dots,\,c_n 中有奇数个数字满足第 kk 位为 11,则 yy 的第 kk 位为 11;若偶数个数字满足,则 yy 的第 kk 位为 00

比如,3355 的异或和为 66。(二进制下,011101 的异或和为 110

样例说明

二进制下,2,3,42,\,3,\,4 分别是 010011100。异或和是 101,十进制下是 55

2 4
5
123 456
435
123456789012 123456789012
123456789012

提示

制約

  • 入力は全て整数である。
  • 0  A  B  1012 0\ \leq\ A\ \leq\ B\ \leq\ 10^{12}

Sample Explanation 1

2, 3, 4 2,\ 3,\ 4 2 2 進数でそれぞれ 010, 011, 100 です。 これらの排他的論理和は 101 であり、これを 10 10 進数表記にすると 5 5 になります。