#4661. Subsequence Path

0

Subsequence Path

Subsequence Path

题目描述

有 NN 个城镇,编号为 1,…,N1, \dots, N,以及 MM 条道路,编号为 1,…,M1, \dots, M.
每条道路都是有向的;道路 ii (1≤i≤M)(1 \leq i \leq M) 将你从城镇 AiA_i 带到城镇 BiB_i。道路 ii 的长度为 CiC_i。 给定一个长度为 KK 的序列 E=(E1,…,EK)E = (E_1, \dots, E_K),其元素为介于 11 到 MM 之间的整数。若从城镇 11 到城镇 NN 的一条旅行路径使用的道路编号按使用顺序排列后是 EE 的一个子序列,则称该旅行路径为良好路径。

注意,序列的子序列是通过从原序列中移除 00 个或多个元素并将剩余元素按原顺序连接而得到的序列。 求一条良好路径所使用道路长度之和的最小值。
如果不存在良好路径,请报告该情况。

输入格式

输入从标准输入给出,格式如下: NN MM KK A1A_1 B1B_1 C1C_1 ⋮\vdots AMA_M BMB_M CMC_M E1E_1 …\ldots EKE_K

输出格式

求一条良好路径所使用道路长度之和的最小值。
如果不存在良好路径,输出 −1-1。

3 4 4
1 2 2
2 3 2
1 3 3
1 3 5
4 2 1 2
4
3 2 3
1 2 1
2 3 1
2 1 1
-1
4 4 5
3 2 2
1 3 5
2 4 7
3 4 10
2 4 1 4 3
14

提示

2≤N≤2×1052 \leq N \leq 2 \times 10^5 1≤M,K≤2×1051 \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)$ 1≤Ci≤109 (1≤i≤M)1 \leq C_i \leq 10^9 \, (1 \leq i \leq M) 1≤Ei≤M (1≤i≤K)1 \leq E_i \leq M \, (1 \leq i \leq K) 输入中的所有数值均为整数。存在两条可能的良好路径如下:

使用道路 44。在这种情况下,所用道路长度之和为 55。 按此顺序使用道路 11 和 22。在这种情况下,所用道路长度之和为 2+2=42 + 2 = 4。

因此,所求的最小值为 44.
不存在良好路径。

标签: AtCoder|abc271E

来源

AtCoder|abc271E