【题目背景】
在晨汐港备齐远航所需的物资后,Gioush 大队再度驶入特西荼亚海。暮色中的金白鱼群将众人引向岛屿密布的海域,Ehundategh 于是让 tfbz 接管船上的灵舵,带领船队穿过千屿之间的水道。
【题目描述】
特西荼亚海中共有 n n n 座岛屿,岛屿之间共有 m m m 条单向航道,每条航道都有一定的航行费用。为了让掌舵者能够在交错的水道间迅速作出选择,Ehundategh 预先为每座岛屿的所有出航航道规定了固定次序:若从岛屿 x x x 出发的航道共有 d x d_x d x 条,则它们依次编号为 1 ∼ d x 1\sim d_x 1 ∼ d x 。
船上的灵舵档位 用整数 p p p 表示,其上限为 k k k 。启航时,tfbz 将灵舵档位 设为 1 1 1 。在航行途中的任意时刻,他都可以按照以下方式调整灵舵档位 :
若 p < k p<k p < k ,则可以花费 v p v_p v p 的费用,使 p ← p + 1 p\leftarrow p+1 p ← p + 1 ;
若 p > 1 p>1 p > 1 ,则可以花费 w p w_p w p 的费用,使 p ← p − 1 p\leftarrow p-1 p ← p − 1 。
当船位于岛屿 x x x ,且当前灵舵档位 为 p p p 时,若从岛屿 x x x 出发的第 p p p 条航道通向岛屿 y y y ,其航行费用为 z z z ,则 tfbz 可以花费 z z z 的费用,操纵船沿这条航道抵达岛屿 y y y 。航行结束后,灵舵档位 不会改变。特别地,若从岛屿 x x x 出发的航道不足 p p p 条,则船此时无法从岛屿 x x x 出航,但 tfbz 仍然可以继续调整灵舵档位 。
Gioush 大队最初位于岛屿 1 1 1 。为了在真正深入群岛前准备好每一条可能的航线,tfbz 希望知道:从岛屿 1 1 1 出发,抵达每一座岛屿所需的最小费用分别是多少。
【输入格式】
从文件 helm.in \textbf{\textit{helm.in}} helm.in 中读入数据。
第一行三个正整数 n , m , k n,m,k n , m , k ,分别表示岛屿数量、单向航道数量和灵舵档位 的上限。
第二行包含 k − 1 k-1 k − 1 个非负整数 v 1 , v 2 , … , v k − 1 v_1,v_2,\ldots,v_{k-1} v 1 , v 2 , … , v k − 1 ,表示调高灵舵档位 所需的费用。当 k = 1 k=1 k = 1 时,该行为空。
第三行包含 k − 1 k-1 k − 1 个非负整数 w 2 , w 3 , … , w k w_2,w_3,\ldots,w_k w 2 , w 3 , … , w k ,表示调低灵舵档位 所需的费用。当 k = 1 k=1 k = 1 时,该行为空。
接下来 n n n 行描述各座岛屿的出航航道。第 i i i 行的第一个整数 d i d_i d i 表示从岛屿 i i i 出发的航道数量;接下来包含 2 d i 2d_i 2 d i 个整数 y i , 1 , z i , 1 , y i , 2 , z i , 2 , … , y i , d i , z i , d i y_{i,1},z_{i,1},y_{i,2},z_{i,2},\ldots,y_{i,d_i},z_{i,d_i} y i , 1 , z i , 1 , y i , 2 , z i , 2 , … , y i , d i , z i , d i ,其中 y i , j y_{i,j} y i , j 和 z i , j z_{i,j} z i , j 分别表示第 j j j 条航道通向的岛屿及其航行费用。
【输出格式】
输出到文件 helm.out \textbf{\textit{helm.out}} helm.out 中。
输出一行 n n n 个整数,其中第 i i i 个整数表示从岛屿 1 1 1 抵达岛屿 i i i 所需的最小费用。若无法抵达岛屿 i i i ,则输出 − 1 -1 − 1 。
【样例 1 输入】
复制样例 1 5 6 3 2 2 4 3 1 1 4 3 2 5 3 1 4 2 5 1 3 2 6 2 1 2 4 1 7 0 8 0
【样例 1 输出】
【说明/提示】
【样例 1 解释】
岛屿 1 1 1 是 Gioush 大队的起点,因此抵达它所需的费用为 0 0 0 。
保持灵舵档位 为 1 1 1 ,可以花费 5 5 5 抵达岛屿 2 2 2 ;先花费 2 2 2 将灵舵档位 调为 2 2 2 ,再花费 1 1 1 航行,可以抵达岛屿 3 3 3 ;沿同样的航线抵达岛屿 3 3 3 后,继续选择它的第 2 2 2 条出航航道,便可以再花费 1 1 1 抵达岛屿 4 4 4 。可以证明,这三种方案的费用均为最小值。岛屿 5 5 5 无法抵达,因此输出 − 1 -1 − 1 。
【样例 2】
见选手目录下的 helm/helm2.in \textbf{\textit{helm/helm2.in}} helm/helm2.in 和 helm/helm2.ans \textbf{\textit{helm/helm2.ans}} helm/helm2.ans 。
该组样例符合测试点 1 ∼ 6 1\sim 6 1 ∼ 6 的数据范围。
【样例 3】
见选手目录下的 helm/helm3.in \textbf{\textit{helm/helm3.in}} helm/helm3.in 和 helm/helm3.ans \textbf{\textit{helm/helm3.ans}} helm/helm3.ans 。
该组样例符合测试点 7 ∼ 9 7\sim 9 7 ∼ 9 的数据范围。
【样例 4】
见选手目录下的 helm/helm4.in \textbf{\textit{helm/helm4.in}} helm/helm4.in 和 helm/helm4.ans \textbf{\textit{helm/helm4.ans}} helm/helm4.ans 。
该组样例符合测试点 10 ∼ 15 10\sim 15 10 ∼ 15 的数据范围。
【样例 5】
见选手目录下的 helm/helm5.in \textbf{\textit{helm/helm5.in}} helm/helm5.in 和 helm/helm5.ans \textbf{\textit{helm/helm5.ans}} helm/helm5.ans 。
该组样例符合测试点 16 ∼ 20 16\sim 20 16 ∼ 20 的数据范围。
【数据范围】
对于 100 % 100\% 100% 的数据,保证:1 ≤ n , m ≤ 3 × 10 5 1\leq n,m\leq 3\times 10^5 1 ≤ n , m ≤ 3 × 1 0 5 ,1 ≤ k ≤ 2.5 × 10 5 1\leq k\leq 2.5\times 10^5 1 ≤ k ≤ 2.5 × 1 0 5 ,0 ≤ v i , w i ≤ 10 9 0\leq v_i,w_i\leq 10^9 0 ≤ v i , w i ≤ 1 0 9 ,0 ≤ d i ≤ k 0\leq d_i\leq k 0 ≤ d i ≤ k ,∑ i = 1 n d i = m \sum_{i=1}^{n}d_i=m ∑ i = 1 n d i = m ,1 ≤ y i , j ≤ n 1\leq y_{i,j}\leq n 1 ≤ y i , j ≤ n ,1 ≤ z i , j ≤ 10 9 1\leq z_{i,j}\leq 10^9 1 ≤ z i , j ≤ 1 0 9 。
特殊性质 A:所有调高或调低灵舵档位 的费用均为 0 0 0 。
特殊性质 B:至多存在 10 10 10 座岛屿满足 d i ≥ 10 d_i\geq 10 d i ≥ 10 。