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

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

함수

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

요약
n이 2 이하이고 법 m이 소수일 때, a0, a1^a0, a2^(a1^a0)로 이어지는 거듭제곱 탑의 값을 계산해 f(n)을 m으로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 재귀, 구현
정답자
아직 제출이 없습니다

문제

음이 아닌 정수 집합을 N0\mathbb{N}_0이라 할 때, 다음과 같이 정의된 함수 f : N0→N0f \, : \, \mathbb{N}_0 \to \mathbb{N}_0가 주어진다.

  • f(0)=a0f(0) = a_0
  • f(i)=aif(i−1)f(i) = a_i^{f(i - 1)} (i≥1i \ge 1)

f(n)f(n)을 mm으로 나눈 나머지를 구하시오.

입력

첫째 줄에 정수 nn이 주어진다.

둘째 줄에 n+1n + 1개의 정수 a0, a1, ⋯ , ana_0, \, a_1, \, \cdots, \, a_n이 주어진다.

셋째 줄에 정수 mm이 주어진다.

출력

f(n)f(n)을 mm으로 나눈 나머지를 출력한다.

제한

  • 0≤n≤20 \le n \le 2
  • 1≤ai≤2×1091 \le a_i \le 2 \times 10^9 (0≤i≤n0 \le i \le n)
  • 2≤m<2×1092 \le m < 2 \times 10^9; mm은 소수이다.
  • 입력으로 주어지는 모든 값은 정수이다.

힌트

참고로 9999^{9^9}의 정확한 값은 무려 369 693 700369 \, 693 \, 700자리이다.

예제1

  1. 예제 1

    입력
    2
    2 3 2
    11
    
    예상 출력
    6