水以下コンテスト
コンテスト日時
2024/03/30 (Sa) 14:00 - 17:05

C - Unions

Ceylon
2
s
1024
MB
100

問題文

NN個の国1,2,,N1,2, \ldots,Nがあります。
また、複数の国で構成される同盟がMM個あり、ii個目の同盟にはCiC_i個の国(Ai1,Ai2,,AiCi)(A_{i1}, A_{i2}, \ldots , A_{iC_i})が参加しています。

同じ同盟に属している国同士は直接行き来することができ、同盟iiに属している国同士はDiD_i分で移動できます。
同じ同盟に属していない国同士は直接行き来することができません。

k=2,3,,Nk=2,3,\ldots,Nについて、
11から国kkへ移動するのにかかる時間の最小値を求めてください。国11から国kkへ移動することができない場合は1-1を出力してください。

制約

  • 2N1052 \leq N \leq 10^5
  • 1M1051 \leq M \leq 10^5
  • 2Ci  (1iM)2 \leq C_i~~(1 \leq i \leq M)
  • i=1MCi105\sum_{i=1}^M C_i \leq 10^5
  • 1AijN  (1iN,1jCi)1 \leq A_{ij} \leq N ~~(1 \leq i \leq N, 1 \leq j \leq C_i)
  • jkAijAikj \neq k \Rightarrow A_{ij} \neq A_{ik}
  • 1Di109  (1,iN)1 \leq D_i \leq 10^9~~(1, \leq i \leq N)

部分点

以下の条件を満たすテストケースにすべて正解したとき、記載された点数が与えられる。

  1. (20点) Ci=2  (1iM),  i=1MCi1000C_i = 2~~(1 \leq i \leq M), ~~\sum_{i=1}^{M} C_i \leq 1000
  2. (30点) i=1MCi1000\sum_{i=1}^{M} C_i \leq 1000
  3. (50点) 追加の制約なし

入力

入力は、以下の形式で標準入力から与えられる。

NNMM
C1C_1C2C_2\ldotsCMC_M
D1D_1D2D_2\ldotsDMD_M
A11A_{11}A12A_{12}\ldotsA1C1A_{1C_1}
A21A_{21}A22A_{22}\ldotsA2C2A_{2C_2}
\vdots
AM1A_{M1}AM2A_{M2}\ldotsAMCMA_{MC_M}

出力

N1N-1行で、kk行目には国11から国k+1k+1に移動するのにかかる時間の最小値(到達不可能な場合は1-1)を出力せよ。

入力例 1
7 7 2 2 2 2 2 2 2 4 3 2 5 3 5 7 1 2 1 5 2 3 2 5 3 4 4 5 4 6
出力例 1
4 6 8 3 15 -1

例えば次のように移動することで、国11から国661515分で移動でき、これが最短となります。

  1. 11から国55へ移動する(同盟22, 33分)
  2. 55から国44へ移動する(同盟66, 55分)
  3. 44から国66へ移動する(同盟77, 77分)

また、国1から国7へは移動することができないため、6行目には-1を出力してください。
このサンプルは部分点1の制約を満たします。

入力例 2
20 11 10 3 4 2 2 3 5 2 4 5 3 83 45 92 24 94 22 52 23 79 72 49 3 4 5 9 10 11 12 13 18 20 6 9 3 5 7 9 11 5 12 1 10 7 2 16 6 9 10 15 14 1 13 6 13 15 17 8 7 12 4 15 2 8 19
出力例 2
196 106 106 106 102 174 174 106 94 106 106 23 146 102 196 102 106 223 106

このサンプルは部分点2の制約を満たします。