재미있는 게임
시간 제한2초메모리 제한1024 MB
1에서 시작해 수를 2배 하거나 1 더하는 게임을 상한 n 아래에서 할 때, 선공이 이기는 n이 [l, r]에 몇 개인지 구합니다.
문제
스폰지밥과 뚱이는 한참 동안 무엇을 하며 놀지 정하지 못하고 있다. 징징이가 둘을 돕기 위해 게임을 하나 제안했다. 칠판에는 처음에 수 1이 적혀 있다. 각 차례에 플레이어는 칠판에 적힌 수를 지우고, 그 자리에 그 수의 두 배 또는 그 수에 1을 더한 값을 적는다. 예를 들어 3에서는 4와 6을 만들 수 있고, 5에서는 6 또는 10을 만들 수 있다.
게임을 시작할 때 상한 이 정해진다. 상한은 칠판에 적을 수 있는 가장 큰 수다. 예를 들어 이고 칠판에 5가 적혀 있다면, 다음 차례에는 6만 적을 수 있다. 10은 이므로 적을 수 없다.
움직일 수 없는 플레이어가 진다. 즉 차례가 왔을 때 칠판에 이 적혀 있으면 그 플레이어가 진다. 뚱이가 먼저 둔다.
게임을 여러 번 한 뒤 뚱이는 궁금한 점이 생겼다. 부터 까지의 수 중에서 승리 수가 몇 개인지 알 수 있을까? 수 은 상한이 일 때 양쪽이 최적으로 두면 뚱이가 이기는 경우 승리 수다. 구간 에 있는 승리 수의 개수를 구하는 것을 도와 달라.
입력
첫 번째이자 유일한 줄에 두 수 , 이 주어진다 (). 두 수는 구간의 양 끝이다.
출력
구간 에 있는 승리 수의 개수를 출력한다.