두 정수 a, b에 동일한 수를 더하거나 빼도 대소관계가 변하지 않음은 잘 알고 있을 것이다.
그럼 동일한 수를 xor해도 대소관계가 변하지 않을까?
두 부울 변수의 xor은 아래와 같이 정의된다.
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
이 연산을 정수로 확장하면 두 정수를 각각 이진수로 표현한 후 각 비트별로 xor연산을 수행하는 것으로 정의할 수 있다.
3 xor 5 의 예시를 들자면, 3 = 011, 5 = 101 이므로
011
xor 101
_______
110 = 6
즉, 3 xor 5 = 6 이다.
a <= b 를 만족하는 음이 아닌 두 정수 a와 b가 주어진다.
0 <= c < 2^60 인 정수 c중 (a xor c) <= (b xor c)를 만족하는 것의 개수를 구하시오.
첫 번째 줄에 a와 b가 공백으로 구분되어 주어진다.
(0 <= a <= b < 2^60)
조건을 만족하는 c의 개수를 출력한다.