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

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

탑

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

요약
a1=1, an=2*a2*a(n-1)-a(n-2)로 정의된 수열의 처음 N개 항 제곱합을 각 테스트마다 m으로 나눈 나머지로 구한다.
난이도

보통10점 중 7점

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

문제

앨런은 정육면체 모양 벽돌을 쌓아 탑 만드는 것을 좋아한다. 탑은 정사각형 밑면을 가진 여러 개의 직육면체로 이루어지며, 모든 직육면체의 높이는 h=1h = 1로 같다. 앨런은 직육면체를 하나씩 위로 쌓아 올린다.

그림 1: 앨런이 a2=2a_2 = 2로 정했을 때 벽돌 3개로 이루어진 탑.

최근 수학 시간에 부피의 개념을 배운 앨런은 자신이 만든 탑의 부피를 구하고 싶어졌다. 위에서 아래로 내려가며 각 직육면체 밑면의 한 변의 길이는 다음 규칙으로 정해진다.

  1. 첫 번째 정사각형의 변의 길이 a1a_1은 11이다.
  2. 두 번째 정사각형의 변의 길이 a2a_2는 앨런이 직접 정한다.
  3. n>2n > 2인 경우, 길이 ana_n은 an=2a2an−1−an−2a_n = 2 a_2 a_{n-1} - a_{n-2}로 계산한다. 왜 이런 식을 골랐는지는 묻지 말자. 그는 그저 별난 친구일 뿐이다.

예를 들어 앨런이 a2=2a_2 = 2로 정하면 a3=8−a1=7a_3 = 8 - a_1 = 7이다(그림 1 참고). 앨런이 a2=1a_2 = 1로 정하면 모든 n∈Nn \in \mathbb{N}에 대해 an=1a_n = 1이 성립한다(그림 2 참고).

그림 2: 앨런이 a2=1a_2 = 1로 정했을 때 벽돌 4개로 이루어진 탑.

이제 앨런은 연속한 NN개의 벽돌로 이루어진 탑의 부피를 계산하고 싶다. 각 직육면체의 부피는 (밑면의 넓이) ×\times (높이) =an2= a_n^2이므로, 탑 전체의 부피는 ∑n=1Nan2\sum_{n=1}^{N} a_n^2이다. 이 값은 매우 커질 수 있으므로, 주어진 자연수 mm으로 나눈 나머지를 구하면 된다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 첫째 줄에는 테스트 케이스의 개수 tt (t≤105t \le 10^5)가 주어진다. 이어서 tt개의 테스트 케이스가 주어진다. 각 테스트 케이스는 한 줄에 공백 하나로 구분된 세 정수 a2a_2, NN, mm (1≤a2,m≤1091 \le a_2, m \le 10^9, 2≤N≤1092 \le N \le 10^9)으로 주어진다. 여기서 a2a_2는 2단계에서 앨런이 정한 두 번째 정사각형의 변의 길이이고, NN은 앨런이 쌓은 벽돌의 개수이다.

출력

각 테스트 케이스 (a2,N,m)(a_2, N, m)에 대해, 규칙 (1)–(3)에 따라 쌓은 NN개의 벽돌로 이루어진 탑의 부피 ∑n=1Nan2\sum_{n=1}^{N} a_n^2을 mm으로 나눈 나머지를 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    3
    2 3 100
    1 4 1000
    3 3 1000000000
    
    예상 출력
    54
    4
    299
    
  2. 예제 2

    입력
    1
    5 2 1000
    
    예상 출력
    26
    
  3. 예제 3

    입력
    1
    1 1000000000 7
    
    예상 출력
    6