만드는 중입니다

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

순례의 끝

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

요약
마지막 N개 방문 기록이 모두 서로 다를 때까지 걸리는 기대 시간을 구하고, 답을 소수 X로 나눈 나머지로 출력합니다.
난이도

어려움10점 중 8점

유형
확률, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

순례자는 끝나지 않을 것처럼 보이는 순례를 계속하고 있다. 순례자는 지금 있는 성지에서 다른 성지로 이동하고, 성지에 도착할 때마다 신께 기도를 드린다. 이 과정을 계속 반복한다.

지상에는 성지가 NN개 있고, 1번부터 NN번까지 번호가 붙어 있다. 순례자가 ii번 성지에서 jj번 성지로 이동하는 데는 정확히 Li,jL_{i,j}분이 걸린다. 서로 다른 두 성지를 오가는 데 걸리는 시간은 다를 수 있다. 순례자가 ii번 성지에 도착하면 정확히 PiP_i분 동안 기도한다.

기도를 마친 순례자는 신의 계시에 따라 지체 없이 다음 성지로 이동한다. 신은 순례자가 있는 성지를 뺀 나머지 N−1N-1개 성지 중 하나를 모두 같은 확률 1N−1\frac{1}{N-1}로 골라 순례자에게 알려 주고, 순례자는 즉시 그곳으로 간다. 신은 전능하고 순례자는 매우 기민하므로, 이동과 기도 사이, 기도와 이동 사이에 걸리는 시간은 0분이다.

순례자가 기도를 마친 시점에 가장 최근에 들른 성지 NN개가 모두 서로 다르면, 순례는 끝나고 순례자는 신이 준비한 나라에 들어간다.

순례자가 가장 최근에 들른 성지 NN개가 방문한 순서대로 주어진다. 순례자가 현재 성지에서 기도를 마치고 다시 이동을 시작하는 시점부터 순례가 끝날 때까지 걸리는 시간의 기댓값을 구하여라.

입력

첫째 줄에 성지의 개수 NN과 소수 XX (109≤X≤109+10410^9 \leq X \leq 10^9 + 10^4)가 주어진다. XX의 용도는 출력 부분에 나온다.

둘째 줄에 각 성지에서 기도하는 시간 P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N (1≤Pi≤1061 \leq P_i \leq 10^6)이 주어진다.

다음 NN개 줄의 ii번째 줄에는 ii번 성지에서 각 성지로 이동하는 시간 Li,1,Li,2,⋯ ,Li,NL_{i,1}, L_{i,2}, \cdots, L_{i,N} (0≤Li,j≤1060 \leq L_{i,j} \leq 10^6, Li,i=0L_{i,i}=0)이 주어진다.

다음 줄에는 기댓값을 구해야 하는 횟수 QQ (1≤Q≤1051 \leq Q \leq 10^5)가 주어진다.

다음 QQ개 줄에는 각각 자연수 NN개 M1,M2,⋯ ,MNM_1, M_2, \cdots, M_N (1≤Mi≤N1 \leq M_i \leq N, Mi−1≠MiM_{i-1} \neq M_i)이 주어진다. M1M_1은 가장 오래전에 방문한 성지 번호이고, MNM_N은 가장 최근에 방문한 성지 번호이다.

출력

QQ개 줄에 걸쳐 답을 출력한다. 모든 입력에 대해 기댓값이 유리수임이 증명되어 있다.

ii번째로 주어진 방문 순서에 대한 기댓값을 기약분수 PiQi\frac{P_i}{Q_i}로 나타냈다고 하자. ii번째 줄에는 Pi≡QiRi(modX)P_i \equiv Q_i R_i \pmod{X}를 만족하는 00 이상 XX 미만의 정수 RiR_i를 출력한다. 모든 입력에 대해 이런 RiR_i가 하나만 존재함이 확인되어 있다.

예제2

  1. 예제 1

    입력
    3 1000000007
    1 4 9
    0 1 2
    3 0 4
    5 6 0
    3
    1 2 3
    2 1 2
    3 2 1
    
    예상 출력
    0
    666666688
    0
    
  2. 예제 2

    입력
    5 1000009999
    29 68 49 31 77
    0 83 12 72 81
    93 0 46 54 22
    19 51 0 97 35
    39 24 90 0 15
    79 32 41 55 0
    5
    1 2 5 3 5
    2 3 4 5 2
    1 2 1 2 1
    5 2 3 4 2
    3 4 2 3 1
    
    예상 출력
    847386114
    834075996
    404434664
    276590794
    316334025