SOJ ONLINE JUDGE

문제 126

거듭제곱 탑의 나머지

내 상태
미제출
난이도
126번 문제 난이도 보기
Platinum I
출제자
rlatjwls7882
시간 제한
5000 ms
메모리 제한
1024 MB
126번 문제 태그 보기
구현

길이가 $N$인 음이 아닌 정수 배열 $A_1,A_2,\cdots,A_N$과 양의 정수 $M$이 주어진다. 다음 거듭제곱 탑을 $M$으로 나눈 나머지를 구해 보자.

\[ A_1^{\left(A_2^{\left(\cdots^{A_N}\right)}\right)}. \]

거듭제곱은 오른쪽부터 계산하며, $0^0=1$로 정의한다.

입력

첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $T$가 주어진다. $(1 \le T \le 1\,000)$ 각 테스트 케이스는 다음과 같이 주어진다.

첫 번째 줄에 두 정수 $N$, $M$이 공백으로 구분되어 주어진다. $(1 \le N \le 200\,000; 1 \le M \le 10^9)$

두 번째 줄에 배열의 원소 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다. $(0 \le A_i \le 2^{63}-1)$

모든 테스트 케이스에 대한 $N$의 합은 $200\,000$ 이하이다.

출력

각 테스트 케이스에서 구한 나머지를 테스트 케이스가 주어진 순서대로 한 줄에 하나씩 출력한다.

예제 입력 1

6
1 1
0
2 8
0 0
3 8
0 0 0
2 8
2 3
3 100
2 3 2
1 1000000000
9223372036854775807

예제 출력 1

0
1
0
0
12
854775807

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.