만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

춤추는 비트

시간 제한2초메모리 제한1024 MB

요약
L 이상 R 이하인 x, y, z 중 (x | y)와 (y ^ z)가 같은 순서쌍의 개수를 구합니다.
난이도

보통10점 중 6점

유형
비트 연산, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

존경하는 셜록 홈즈 씨. 저는 아무리 찾아도 부벤치크를 찾을 수 없습니다. 제발, 제발, 제발 도와주실 수 있을까요?

어린 소녀

부벤치크 사건은 헨리 나이트 사건보다 셜록의 관심을 훨씬 더 끌었다. 그래서 셜록은 아무도 모르게 비밀 군사기지 바스커빌에서 부벤치크의 전체 자료가 담긴 컴퓨터를 찾아냈다. 그러나 안타깝게도 그 컴퓨터는 교묘하게 잠겨 있었다.

컴퓨터는 셜록에게 두 정수 LL과 RR을 보여 주었다. 비밀번호는 다음 조건을 만족하는 서로 다른 세 수 xx, yy, zz의 조합이다.

L≤x,y,z≤RL \le x, y, z \le R

그리고

((x∣y)==(y⊕z))((x | y) == (y \oplus z))

여기서 ∣|는 비트 단위 OR 연산이고, ⊕\oplus는 비트 단위 XOR 연산(2를 법으로 한 덧셈)이다.

셜록에게는 이런 조합을 모두 자동으로 계산해 주는 장치가 없다. 셜록이 적어도 이러한 조합의 개수를 구하도록 도와달라.

입력

한 줄에 두 정수 LL과 RR이 주어진다(1≤L≤R≤5×1081 \le L \le R \le 5 \times 10^8). 컴퓨터가 보여 준 수들이다.

출력

조건을 만족하는 서로 다른 조합의 개수를 한 줄에 출력한다.

힌트

세 수의 순서만 다른 조합은 서로 다른 것으로 센다는 점에 주의한다.

예제1

  1. 예제 1

    입력
    3 7
    
    예상 출력
    6