#abc271e. [abc271_e]Subsequence Path

[abc271_e]Subsequence Path

問題文

1,dots,N1, \\dots, N と番号づけられた NN 個の都市と、1,dots,M1, \\dots, M と番号づけられた MM 本の道があります。
全ての道は一方通行であり、道 i,(1leqileqM)i \\, (1 \\leq i \\leq M) を通ると、都市 AiA_i から都市 BiB_i へ移動することができます。また、道 ii の長さは CiC_i です。

11 以上 MM 以下の整数からなる長さ KK の数列 E=(E1,dots,EK)E = (E_1, \\dots, E_K) が与えられます。都市 11 から都市 NN までいくつかの道を使って移動する方法であって、以下の条件を満たすものを良い経路と呼びます。

  • 通る道の番号を通った順番に並べた列は、EE の部分列である。

なお、部分列とは、数列から 00 個以上の要素を削除し、残った要素を元の順序で並べて得られる数列のことを指します。

全ての良い経路における、通る道の長さの合計の最小値を求めてください。
ただし、良い経路が存在しない場合は、そのことを報告してください。

制約

  • 2leqNleq2times1052 \\leq N \\leq 2 \\times 10^5
  • 1leqM,Kleq2times1051 \\leq M, K \\leq 2 \\times 10^5
  • $1 \\leq A_i, B_i \\leq N, A_i \\neq B_i \\, (1 \\leq i \\leq M)$
  • 1leqCileq109,(1leqileqM)1 \\leq C_i \\leq 10^9 \\, (1 \\leq i \\leq M)
  • 1leqEileqM,(1leqileqK)1 \\leq E_i \\leq M \\, (1 \\leq i \\leq K)
  • 入力は全て整数

入力

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

NN MM KK A1A_1 B1B_1 C1C_1 vdots\\vdots AMA_M BMB_M CMC_M E1E_1 ldots\\ldots EKE_K

出力

全ての良い経路における、通る道の長さの合計の最小値を出力せよ。ただし、良い経路が存在しないならば、\-1\-1 を出力せよ。


入力例 1

3 4 4
1 2 2
2 3 2
1 3 3
1 3 5
4 2 1 2

出力例 1

4

良い経路として考えられるのは次の二つです。

  • 44 を使う。通る道の長さの合計は 55 である。
  • 1,21, 2 をこの順で使う。通る道の長さの合計は 2+2=42 + 2 = 4 である。

よって、求める最小値は 44 です。


入力例 2

3 2 3
1 2 1
2 3 1
2 1 1

出力例 2

-1

良い経路は存在しません。


入力例 3

4 4 5
3 2 2
1 3 5
2 4 7
3 4 10
2 4 1 4 3

出力例 3

14