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

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

삼항식

시간 제한3초메모리 제한128 MB

요약
각 질의마다 (x^2+x+1)^n 전개식에서 x^i의 계수를 3으로 나눈 나머지를 구한다. n은 10^15까지 주어진다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 조합론, 분할 정복
정답자
아직 제출이 없습니다

문제

삼항식 (x2+x+1)n(x^2 + x + 1)^n 을 생각하자. 이 식을 전개했을 때 나타나는 계수 cic_i 를 구하려고 한다.

c0+c1x+c2x2+⋯+c2nx2nc_0 + c_1 x + c_2 x^2 + \dots + c_{2n} x^{2n}

예를 들어 (x2+x+1)3=1+3x+6x2+7x3+6x4+3x5+x6(x^2 + x + 1)^3 = 1 + 3x + 6x^2 + 7x^3 + 6x^4 + 3x^5 + x^6 이다.

다음을 수행하는 프로그램을 작성하라.

  • 두 수 nn 과 ii 로 이루어진 여러 개의 데이터 집합을 입력받는다.
  • 각 데이터 집합에 대해, (x2+x+1)n(x^2 + x + 1)^n 의 전개에서 xix^i 의 계수인 cic_i 를 33 으로 나눈 나머지 ci mod 3c_i \bmod 3 을 계산한다.
  • 계산한 값을 각각 표준 출력에 쓴다.

입력

첫째 줄에 데이터 집합의 개수를 나타내는 정수 kk 가 주어진다 (1≤k≤100001 \le k \le 10000).

이어서 kk 개의 데이터 집합이 한 줄에 하나씩 주어진다. 각 데이터 집합은 공백 하나로 구분된 음이 아닌 두 정수 nn 과 ii 로 이루어진다 (0≤n≤10150 \le n \le 10^{15}, 0≤i≤2n0 \le i \le 2n).

출력

kk 개의 줄을 출력한다. jj 번째 줄에는 jj 번째 데이터 집합에 대한 ci mod 3c_i \bmod 3 값을 나타내는, 음이 아닌 정수 하나를 출력한다.

예제2

  1. 예제 1

    입력
    5
    2 0
    7 4
    4 5
    5 3
    8 15
    
    예상 출력
    1
    2
    1
    0
    2
    
  2. 예제 2

    입력
    7
    3 0
    3 1
    3 2
    3 3
    3 4
    3 5
    3 6
    
    예상 출력
    1
    0
    0
    1
    0
    0
    1