#5978. 选择最佳线路

选择最佳线路

题目背景

琪琪想乘坐公交车去拜访朋友,由于容易晕车,她希望选择一条耗时最短的路线尽快到达。

题目描述

给定一张城市交通路线图,包含 nn 个公交站台(编号 1n1 \sim n)和 mm 条单向公交线路。每条线路从一个车站直达另一个车站,两个车站间可能存在多条线路。

琪琪的朋友住在 ss 号车站附近。琪琪可以在任意车站换乘其他公交车,且她可以从家附近的 ww 个车站中选择一个作为始发站。

请你帮琪琪找出到达朋友家附近车站所需花费的最少时间。

输入格式

本题包含多组测试数据。

每组测试数据格式如下:

第一行包含三个整数 n,m,sn, m, s,分别表示车站数量、公交线路数量和朋友家附近的车站编号。

接下来 mm 行,每行包含三个整数 p,q,tp, q, t,表示存在一条从车站 pp 到车站 qq 的单向线路,耗时为 tt

接下来一行一个整数 ww,表示琪琪家附近的车站数量。

再接下来一行包含 ww 个整数,表示琪琪家附近的 ww 个车站编号。

注意:输入可能包含多组测试数据,每组数据的格式均如上所述。请处理到文件末尾(EOF)。

输出格式

对于每组测试数据,输出一行一个整数,表示琪琪到达朋友家所需的最少时间。

如果无法到达朋友家附近的车站,则输出 -1

样例

5 8 5
1 2 2
1 5 3
1 3 4
2 4 7
2 5 6
2 3 5
3 5 1
4 5 1
2
2 3
4 3 4
1 2 3
1 3 4
2 3 2
1
1
1
-1

数据范围

  • 1n10001 \leq n \leq 1000
  • 1m200001 \leq m \leq 20000
  • 1sn1 \leq s \leq n
  • 0<w<n0 < w < n
  • 0<t10000 < t \leq 1000