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

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

(재밌고 웃기고 센스있고 깔끔한 제목)

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

요약
문자열이 S_n = (S_{n-2}S_{n-1}) 규칙으로 자라날 때, n과 k(최대 10^18)가 주어지면 S_n의 k번째 문자를 구하고 길이를 넘으면 0을 출력한다.
난이도

보통10점 중 7점

유형
재귀, 수학, 문자열, 분할 정복
정답자
아직 제출이 없습니다

문제

다음과 같은 문자열의 수열 SS를 정의한다.

S_1=S\_1 = ()

S_2=S\_2 = ()

S_n=S\_n = (S_n−2S_n−1S\_{n-2} S\_{n-1}) where n≥3n \geq 3

S_nS\_n의 kk 번째 문자를 구하여라. 단, S_nS\_n의 맨 처음 문자의 인덱스는 11이다.

입력

첫 번째 줄에 테스트 케이스의 수 TT가 주어진다. (1≤T≤1,0001 \leq T \leq 1\\,000)

두 번째 줄부터 TT 개의 줄에 정수 nn, kk가 주어진다. (1≤n,k≤10181 \leq n, k \leq 10^{18})

출력

각 테스트 케이스마다 S_nS\_n의 kk 번째 문자를 출력한다. 만약, kk가 S_nS\_n의 길이보다 클 경우, 0을 대신 출력한다.

힌트

위의 정의에 따라,

S_3=S\_3 = (()())

S_4=S\_4 = (()(()()))

S_5=S\_5 = ((()())(()(()())))

이다.

예제1

  1. 예제 1

    입력
    3
    3 7
    4 7
    5 7
    
    예상 출력
    0
    (
    )