비트 세기
면접 대비시간 제한2초메모리 제한512 MB
정수 k와 b가 주어질 때 0부터 2^b-1까지 k의 배수의 이진 표현에서 1의 개수를 모두 더한 값을 10^9+9로 나눈 나머지로 출력합니다.
문제
값 와 비트 수 가 주어진다. 이상 이하의 의 배수 각각을 이진수로 나타냈을 때, 등장하는 1 비트의 총 개수를 구하시오.
입력
각 입력은 하나의 테스트 케이스로 이루어진다. 프로그램은 서로 다른 입력에 대해 여러 번 실행될 수 있다.
각 테스트 케이스는 한 줄로 이루어지며, 공백으로 구분된 두 정수 ()와 ()가 주어진다. 와 의 의미는 위에서 설명한 것과 같다.
출력
이상 이하의 의 배수 각각을 이진수로 나타냈을 때 등장하는 1 비트의 총 개수를 한 정수로 출력한다. 이 값은 매우 클 수 있으므로 로 나눈 나머지를 출력한다.
힌트
두 번째 예제를 보자. , 이다.
이다. 이상 이하의 의 배수는 , , 이다.
- (1 비트 2개)
- (1 비트 2개)
- (1 비트 4개)
따라서 1 비트는 모두 개이다.