만드는 중입니다

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

황혼

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

요약
1번 도시에서 출발해 금지된 K개의 경로가 연속으로 나타나지 않는 경로로 각 도시까지의 최단 거리를 구합니다.
난이도

보통10점 중 7점

유형
최단 경로, 그래프
정답자
아직 제출이 없습니다

문제

오스타니아는 NN개의 도시와 이 도시들을 잇는 MM개의 도로로 이루어진 나라이다. 도시는 11번부터 NN번까지 차례대로 번호가 붙어 있다. ii (1≤i≤M)(1\le i\le M)번째 도로는 uiu_i번 도시에서 viv_i번 도시로 가는 단방향 도로이며, 이 도로를 지나는 데 wiw_i만큼의 시간이 걸린다. 두 도시 사이에는 방향별로 도로가 최대 1개 있다. 편의상 uu번 도시에서 vv번 도시로 가는 도로를 지나는 데 걸리는 시간을 w(u,v)w(u,v)라고 하자.

웨스탈리스는 오스타니아와 냉전 관계에 있는 국가이다. 웨스탈리스는 첩보원들을 통해 오스타니아에 대한 KK개의 정보를 얻었다. 각 정보는 하나의 단순 경로로 표현된다. 정확히는 jj (1≤j≤K)(1\le j\le K)번째 정보가 서로 다른 sjs_j개 도시의 나열 (pj,1,pj,2,⋯ ,pj,sj)(p_{j,1},p_{j,2},\cdots ,p_{j,s_j})이며, 모든 1≤t<sj1\le t<s_j에 대해 pj,tp_{j,t}번 도시에서 pj,t+1p_{j,t+1}번 도시로 가는 도로가 존재한다. 어떤 도시도 서로 다른 두 정보에 동시에 속하지 않는다.

웨스탈리스의 첩보원 코드네임 <황혼>은 현재 오스타니아의 1번 도시에 있다. 웨스탈리스 정부는 정보를 모으기 위해 황혼에게 xx번 도시까지 이동하라고 지시했다. 황혼은 정보 수집 효율을 최대화하려고, KK개의 단순 경로 중 어느 것도 포함하지 않는 경로로 이동하기로 했다. 구체적으로 황혼이 방문한 도시를 차례대로 (q1,q2,⋯ ,ql)(q_1,q_2,\cdots ,q_l)이라 하면 다음 조건을 모두 만족해야 한다.

  1. qiq_i번 도시에서 qi+1q_{i+1}번 도시로 가는 도로가 존재한다. (1≤i<l)(1\le i<l)
  2. (pz,1,pz,2,⋯ ,pz,sz)=(qi,qi+1,⋯ ,qi+sz−1)(p_{z,1},p_{z,2},\cdots ,p_{z,s_z}) =(q_i,q_{i+1},\cdots ,q_{i+s_z-1})를 만족하는 정수 ii와 zz가 존재하지 않는다.
  3. 위 두 조건을 만족하면서 xx번 도시까지 가는 데 걸리는 시간 (=∑i=1l−1w(qi,qi+1))(=\sum_{i=1}^{l-1}w(q_i,q_{i+1}))이 최소가 되어야 한다.

11 이상 NN 이하의 모든 정수 xx에 대해, 황혼이 xx번 도시까지 이동할 수 있는지 판별하고, 이동할 수 있다면 xx번 도시까지 가는 데 걸리는 시간을 계산하라.

입력

첫 번째 줄에 세 정수 NN, MM, KK가 공백으로 구분되어 주어진다. (2≤N≤2×105;(2\le N\le 2\times 10^5; 1≤M≤3×105;1\le M\le 3\times 10^5; 0≤K≤N2)0\le K\le\frac{N}{2} )

두 번째 줄부터 MM개의 줄에는 각각 uiu_i, viv_i, wiw_i가 공백으로 구분되어 주어진다. 임의의 ii에 대해 uiu_i번 도시에서 viv_i번 도시로 가는 도로는 하나뿐이다. (1≤i≤M;(1\le i\le M; 1≤ui,vi≤N;1\le u_i,v_i\le N; 1≤wi≤109;1\le w_i\le 10^9; wiw_i는 정수;; ui≠vi)u_i\neq v_i)

1+M+j1+M+j번째 줄에는 단순 경로를 나타내는 sjs_j와 pj,1,⋯ ,pj,sjp_{j,1}, \cdots, p_{j,s_j}가 공백으로 구분되어 주어진다. KK개의 단순 경로에서 각 도시는 최대 11번 나타나며, 입력에 주어진 순서대로 도로를 따라 이동할 수 있음이 보장된다. (1≤j≤K;(1\le j\le K; sj≥2;s_j\ge 2; ∑j=1Ksj≤N)\sum_{j=1}^{K}s_j\le N)

출력

공백으로 구분된 NN개의 정수를 첫 번째 줄에 출력한다. ii번째 정수는 황혼이 모든 조건을 만족하며 ii번 도시까지 가는 데 걸리는 시간이다. ii번 도시에 도달할 수 없다면 -1을 출력한다.

예제3

  1. 예제 1

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

    입력
    4 4 2
    1 2 2
    1 3 1
    2 4 2
    3 4 5
    2 1 3
    2 2 4
    
    예상 출력
    0 2 -1 -1
    
  3. 예제 3

    입력
    11 12 3
    1 2 40
    2 3 40
    3 1 40
    2 4 20
    3 6 10
    9 1 1
    10 11 1
    3 7 1
    7 6 2
    6 7 3
    7 8 4
    4 5 3
    4 1 2 4 5
    3 3 7 8
    2 10 11
    
    예상 출력
    0 40 80 60 -1 83 81 90 -1 -1 -1