만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

괄호 수열의 k번째 문자

면접 대비

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

요약
주어진 n과 k에 대해 S_n = (S_{n-2}S_{n-1}) 로 정의된 괄호 문자열의 k번째 문자를 구합니다. k가 길이를 넘으면 0을 출력합니다.
난이도

보통10점 중 5점

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

문제

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

S1=S_1 = ()

S2=S_2 = ()

Sn=S_n = (Sn−2Sn−1S_{n-2} S_{n-1}) (단, n≥3n \geq 3)

SnS_n의 kk번째 문자를 구하여라. 단, SnS_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})

출력

각 테스트 케이스마다 SnS_n의 kk번째 문자를 출력한다. kk가 SnS_n의 길이보다 크면 대신 0을 출력한다.

힌트

위의 정의에 따라,

S3=S_3 = (()())

S4=S_4 = (()(()()))

S5=S_5 = ((()())(()(()())))

예제1

  1. 예제 1

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