만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

선형 점화식 난수 생성기

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

요약
선형 점화식의 처음 k개 항과 계수, 그리고 매우 큰 N이 주어질 때 N번째 항을 104857601로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

로또 자동 제출 프로그램에 넣을 난수 생성기(RNG)를 만든다. 이 생성기는 다음 선형 점화식으로 수열 AA를 만든다.

Ai=(Ai−1C1+Ai−2C2+⋯+Ai−kCk) mod 104857601(i>k)A_i = (A_{i-1} C_1 + A_{i-2} C_2 + \cdots + A_{i-k} C_k) \bmod 104857601 \qquad (i > k)

kk와 NN, 초기항 A1,A2,…,AkA_1, A_2, \ldots, A_k, 계수 C1,C2,…,CkC_1, C_2, \ldots, C_k가 주어질 때 ANA_N을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 kk와 NN이 공백으로 구분되어 주어진다. (1≤k≤300001 \le k \le 30000, 1≤N≤10181 \le N \le 10^{18})

둘째 줄에 A1,A2,…,AkA_1, A_2, \ldots, A_k가 공백으로 구분되어 주어진다.

셋째 줄에 C1,C2,…,CkC_1, C_2, \ldots, C_k가 공백으로 구분되어 주어진다. (0≤Ai,Ci<1048576010 \le A_i, C_i < 104857601)

출력

첫째 줄에 ANA_N을 출력한다. ANA_N은 항상 104857601보다 작다.

예제3

  1. 예제 1

    입력
    3 5
    1 2 3
    4 5 6
    
    예상 출력
    139
    
  2. 예제 2

    입력
    1 1
    7
    5
    
    예상 출력
    7
    
  3. 예제 3

    입력
    2 10
    1 1
    1 1
    
    예상 출력
    55