만드는 중입니다

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

아 또 XOR이야?

면접 대비

시간 제한1초메모리 제한512 MB

요약
A부터 B까지의 정수 x 가운데 x를 N과 XOR한 값의 이진수에 1이 정확히 K개인 수의 개수를 구합니다.
난이도

보통10점 중 5점

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

문제

툭하면 나와서 지루하기 짝이 없는 XOR 문제가 또 나와버렸다!

정수 NN, KK, AA, BB가 주어진다. AA 이상 BB 이하의 정수 중에서 NN과 Bitwise XOR 연산을 수행한 결과의 이진수 표기에 11이 정확히 KK개 등장하는 수의 개수를 세어보자.

입력

첫 번째 줄에 NN, KK, AA, BB가 이 순서대로 공백을 사이에 두고 주어진다.

출력

정답을 출력한다.

제한

  • 1≤N≤2601 \le N \le 2^{60}
  • 0≤K≤600 \le K \le 60
  • 1≤A≤B≤2601 \le A \le B \le 2^{60}

힌트

Bitwise XOR은 두 음이 아닌 정수에 대해 수행할 수 있는 연산이다. 음이 아닌 정수 AA와 BB를 이진수로 나타낸 다음, 각 비트별로 같으면 0, 다르면 1을 대응하는 비트에 쓴다. 이렇게 얻은 수가 A⊕BA \oplus B이다.

예를 들어 A=10A=10, B=6B=6을 보자. 이진수로 101021010_2와 011020110_2이다. 오른쪽에서 첫 번째와 두 번째 비트는 같으므로 0이 되고, 세 번째와 네 번째 비트는 다르므로 1이 된다. 따라서 A⊕BA \oplus B는 11002=121100_2 = 12이다.

예제1

  1. 예제 1

    입력
    10 2 1 20
    
    예상 출력
    6