아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

첫 번째 등장 위치

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

요약
l과 r(최대 10^18)이 주어질 때, 투에-모스 수열에서 t_l부터 t_r까지의 부분 문자열이 처음 나타나는 가장 작은 인덱스를 구합니다.
난이도

어려움10점 중 9점

유형
문자열 매칭, 비트 연산, 재귀, 수학
정답자
아직 제출이 없습니다

문제

유명한 Thue-Morse 수열은 무한 이진 수열 T=t0t1t2…T = t_0 t_1 t_2 \ldots입니다. 음이 아닌 정수 nn의 이진 표현에 1이 홀수 개 있으면 tn=1t_n = 1이고, 그렇지 않으면 tn=0t_n = 0입니다.

수열은 01101001100101101001011001101001...로 시작합니다.

수열의 부분 문자열 tl..r=tltl+1…trt_{l..r} = t_l t_{l+1} \ldots t_r을 생각해 봅시다. tl..rt_{l..r}이 TT에서 처음 나타나는 인덱스를 구하세요. 즉, tl..r=ti..i+(r−l)t_{l..r} = t_{i..i+(r-l)}을 만족하는 가장 작은 음이 아닌 정수 ii를 찾으세요.

입력

여러 테스트 케이스가 주어집니다. 첫 줄에는 테스트 케이스의 수 tt (1≤t≤1051 \le t \le 10^5)가 주어집니다. 각 테스트 케이스는 한 줄로 이루어지며, 정수 ll과 rr (0≤l≤r≤10180 \le l \le r \le 10^{18})이 주어집니다.

출력

각 테스트 케이스마다 tl..rt_{l..r}이 TT에서 처음 나타나는 인덱스를 출력합니다.

힌트

첫 번째 예시에서 t0..10t_{0..10}은 분명히 인덱스 0에서 처음 나타납니다.

두 번째 예시에서 t13..13t_{13..13} = 1은 인덱스 1에서 처음 나타납니다.

세 번째 예시에서 t23..27t_{23..27} = 00110은 인덱스 5에서 처음 나타납니다.

예제1

  1. 예제 1

    입력
    3
    0 10
    13 13
    23 27
    
    예상 출력
    0
    1
    5