编程题
### 问题描述 ”大鱼吃小鱼,小鱼吃虾米。“ 但是,小鱼也有变成大鱼的梦想! 小鱼住在一个有 $n$ 个区域的海底世界,区域编号从 $1$ 到 $n$,海底世界中有 $m$ 条**单向通道**,每条通道连接了其中两个区域。 区域 $1$ 有海底世界中唯一的虾米群。 区域 $2$ 到 $n$ 中,有 $k$ 个区域可以作为出生点,即小鱼可以任意选择其中一个区域作为起点,它将从该起点出发,游到区域 $1$,从而吃到虾米群,变成大鱼。 现在小鱼希望选择某个出生点,使得它从该出生点出发,到吃到虾米群的总距离最短。请你帮帮它。 ### 输入格式 第一行,一个整数 $t$,表示测试案例的个数。($1 \le t \le 10$) 对于每个测试案例: - 第一行,三个整数 $n,m,k$,表示海底世界的区域个数、单向通道条数、出生点个数。($2 \le n \le 10^4$,$1 \le m \le 10^4$,$1 \le k \le n - 1$) ​ - 第二行,$k$ 个整数,表示出生点的编号 $v_i$。($2 \le v_i \le n$) - 接下来 $m$ 行,每行三个整数 $a,b,c$,表示存在一条从区域 $a$ 到区域 $b$ 的长度为 $c$ 的单向通道。($1 \le a,b \le n$,$1 \le c \le 10^5$) ### 输出格式 共 $t$ 行,每行一个整数,表示吃到虾米的最短距离,若无论取哪个出生点,都无法吃到虾米,则为 $-1$。 ### 样例输入 ``` 2 5 4 3 2 3 5 2 1 10 4 1 1 3 4 2 5 4 3 3 1 1 3 2 1 10 ``` ### 样例输出 ```text 3 -1 ``` ### 样例说明 样例 $1$: 选择出生点为区域 $3$,则最短距离的路径为 $3 \rarr 4 \rarr 1$,距离为 $2 + 1 = 3$。 样例 $2$: 仅有唯一的出生点区域 $3$,而从区域 $3$ 无法到达区域 $1$,因此输出 $-1$。
查看答案
赣ICP备20007335号-2