#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 个车站编号。

输出格式

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

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

每个结果占一行。

样例 #1

样例输入 #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
-1

数据范围

对于 100%100\% 的数据:

  • 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