1이 될 때까지
시간 제한1초메모리 제한128 MB
구간 [LO, HI]에 속한 정수 중 이진 표현의 1 개수를 반복해서 세어 1에 도달하는 횟수가 정확히 X인 수의 개수를 구한다. LO는 최대 10^18이고 X는 최대 10이다.
문제
인 정수에서 시작합니다. 을 의 이진 표현에 들어 있는 1의 개수로 정의합니다. 예를 들어 이면 입니다.
일반적으로 는 의 이진 표현에 들어 있는 1의 개수입니다. 이 수열은 항상 1로 수렴합니다.
임의의 시작 수 에 대해, 을 이 되는 가장 작은 첨자 로 정의합니다. 예를 들어 이면 , , 이므로 입니다. 특히 은 이미 1이므로 입니다.
연속한 정수 구간과 값 가 주어졌을 때, 구간 안에서 값이 와 같은 수는 몇 개일까요?
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 세 정수가 한 줄에 주어집니다.
LO HI X
여기서 와 ()는 정수 구간의 하한과 상한이고, ()는 의 목표 값입니다.
입력의 끝은 세 개의 0으로 이루어진 줄이며, 이 줄은 처리하지 않습니다.
출력
각 테스트 케이스마다, 구간 (양 끝 포함) 안에서 값이 와 같은 정수의 개수를 한 줄에 하나의 정수로 출력합니다.