8. 送快递

难度: 中等
时间限制: 1秒
内存限制: 20MB

题目描述

小张是一名快递员,他需要从公司(编号 1)出发,将一份重要文件送到客户手中(编号 n)。城市中有许多地点(编号 1 到 n),某些地点之间有道路相连,每条道路需要花费一定的时间(正整数)。另外,有些地点是交通枢纽,如果小张到达某个交通枢纽,他可以立即传送到另一个交通枢纽(耗费时间为 0)。请问小张最少需要多少时间才能将文件送到客户手中?如果无法送达,请输出 -1。 输入格式 第一行三个整数 n, m, k,分别表示地点数、普通道路数、传送门数。 接下来 m 行,每行三个整数 u, v, w,表示 u 和 v 之间有一条花费 w 分钟的双向道路。 接下来 k 行,每行两个整数 u, v,表示 u 和 v 之间存在一个双向传送门,花费 0 分钟。 最后一行,两个整数 s, t,表示起点和终点(1 ≤ s, t ≤ n,s 和 t 可能相等)。 输出格式 一个整数,表示最短时间。如果无法到达,输出 -1。 数据范围 1 ≤ n ≤ 2×10^5 0 ≤ m ≤ 3×10^5 0 ≤ k ≤ 10^5 1 ≤ w ≤ 10^4 输入输出样例 输入: 4 2 2 1 2 3 2 3 4 2 4 3 4 1 4 输出: 3
C++
支持C++11标准
返回题库