문제1334--xor compare

1334: xor compare

시간제한 : 1.000 sec  메모리제한 : 128 MB

문제 설명

두 정수 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의 개수를 출력한다.

입력 예시 Copy

123 678

출력 예시 Copy

576460752303423488

도움

입력과 출력에 쓰이는 값이 int 형 변수의 범위를 벗어날 수 있음에 주의.

출처/분류