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

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

묻고 더블로 마셔

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

요약
k+1번째 항부터 직전 k개 항의 합을 P로 나눈 나머지로 정의할 때, N번째 항의 값을 구한다. N은 최대 10^9이다.
난이도

보통10점 중 7점

유형
행렬, 수학, 동적 계획법, 분할 정복
정답자
아직 제출이 없습니다

문제

영수를 포함한 NN명의 친구들이 새로운 술게임 "묻고 더블로 마셔"를 고안했다. 게임은 다음과 같이 진행된다.

  1. 게임을 시작할 때 첫 번째, 두 번째, ⋯\cdots, kk 번째 사람이 각자 마실 양을 정한다.
  2. ii 번째(i≥k+1i \geq k+1) 사람부터는 i−1,i−2,⋯ ,i−ki-1, i-2, \cdots, i-k 번째 사람이 마신 양의 합을 PP로 나눈 나머지만큼 마신다.

첫 kk명이 마시는 양 a1,a2,⋯ ,aka_1, a_2, \cdots, a_k가 주어지고 영수가 마지막으로 마신다고 할 때, 영수가 마시게 될 술의 양을 구하시오. 영수와 친구들은 주량이 무제한이라 건강은 걱정하지 않아도 된다.

입력

첫 번째 줄에 nn, kk가 주어진다. (k<N≤109k < N \leq 10^9, 1≤k≤1001 \leq k \leq 100)

두 번째 줄에는 처음 kk명이 마시는 술의 양 a1,a2,⋯ ,aka_1, a_2, \cdots, a_k가 순서대로 주어진다. (1≤ai≤1091 \leq a_i \leq 10^9)

마지막 줄에는 정수 PP가 주어진다. (1≤P≤109+71 \leq P \leq 10^9+7)

출력

영수가 마시게 될 술의 양을 출력한다.

예제1

  1. 예제 1

    입력
    5 3
    1 2 3
    17
    
    예상 출력
    11