BOJ 29817 주식을 안전하게 (Hard)

BOJ 29817 주식을 안전하게 (Hard)

문제 링크:

문제 내용

길이 pp의 수열 M0,M1,,Mp1M_0, M_1, \cdots, M_{p-1}이 주어집니다. i1i \ge 1에 대해 Di=MiMi1D_i = M_i - M_{i-1}이라고 할 때, 상수 cc에 대해 다음의 식이 성립하도록 수열 MM을 연장하려고 합니다.

Dn+c×Dn1++cp1×Dn+1p=0 D_n + c \times D_{n-1} + \cdots + c^{p-1} \times D_{n+1-p} = 0

이때 MkM_k109+710^9+7로 나누었을 때의 음이 아닌 나머지를 구하세요.

입력

첫 줄에 pp, cc, kk가 주어집니다. (2p1002 \le p \le 100, 1c1001 \le c \le 100, pk1018p \le k \le 10^{18}

다음 줄에 M0,M1,,Mp1M_0, M_1, \cdots, M_{p-1}이 주어집니다. (108Mi108-10^8 \le M_i \le 10^8)

출력

문제의 정답을 출력합니다.

문제 풀이

스포일러
DiD_i에 대한 식을 MiM_i에 대한 식으로 치환한 뒤 정리하면 MnM_n에 대한 길이 pp의 선형 재귀식을 얻을 수 있습니다. pp는 100 이하이므로 행렬 거듭제곱을 이용하여 kk번째 원소를 구할 수 있습니다.
Last updated on