#P4880. 抓住czx

抓住czx

题目背景

蒟蒻 lty 出了一道题,但是由于太弱了,所以希望喜欢鸽子的 czx 来帮他写一个 std 。由于 czx 又放鸽子去了,所以没有写 std。蒟蒻 lty 觉得受到了学长的鄙视,所以决定去 czx 放鸽子的地方找他。

题目描述

czx 放鸽子的地方是一个公园,公园可以看作是由 nn 个点 mm 条边组成的无向图(保证无自环),lty 将从公园的入口(bb 号节点)进去寻找 czx,czx 刚开始的位置为 ee,而 czx 会在 aia_i 个单位时间时变化位置到第 xx 个节点去,在此之前 lty 已经知道了 czx 的具体位置和接下来他位置的变化方案,蒟蒻 lty 现在想知道他至少需要花多少时间找到 czx。

UPD:

保证图连通,czx 最后会待在一个地方不动。

输入格式

第一行四个整数 n,m,b,en,m,b,ebbee 的意义如题面所示。

接下来 mm 行,每行三个整数 x,y,zx,y,z,表示 xxyy 之间有一条双向边,lty 走这条边要花费 zz 的时间。

m+1m+1 行一个整数 TT,表示 czx 位置变化的次数。

接下来 TT 行,每行两个整数 aia_ixx,表示 czx 将在第 aia_i 个单位时间时移动到第 xx 个点上去。

输出格式

一个整数,表示最短所需时间。

6 9 1 6
1 2 1
1 3 3
1 4 4
2 3 2
3 6 6
4 5 6
2 5 9
3 5 7
5 6 2
3
10 3
8 5
9 2
9

提示

样例解释:

在开始的时候就直接走到 22 号节点,然后等到 czx过来。总花费时间 99 个单位时间。

对于 30% 的数据,n100,m1000,T100n\le 100,m\le 1000,T\le 100

对于另外 30% 的数据,T=0T=0

对于 100% 的数据,n105,m5×105,T105n \le 10^5,m \le 5\times10^5,T \le 10^5

数据保证所有时间在 int 范围内

注意:在任意一个 czx 开始移动的时间点,都是 czx 先瞬移,然后 lty 再行走,也就是说, lty 不能在 czx 瞬移的时候到他瞬移前的点抓住他,但是 lty 可以在他瞬移到的点等着抓他。