从前,在一个王国中,在 n 个城市间有 m 条道路连接,而且任意两个城市之间至多有一条道路直接相连。在经过一次严重的战争之后,有 d 条道路被破坏了。国王想要修复国家的道路系统,现在有两个重要城市 A 和 B 之间的交通中断,国王希望尽快的恢复两个城市之间的连接。你的任务就是修复一些道路使 A 与 B 之间的连接恢复,并要求修复的道路长度最小。
输入文件 第一行为一个整数 n(2<n≤100),表示城市的个数。这些城市编号从 1 到 n。第二行为一个整数 m(n−1≤m≤21n(n−1)),表示道路的数目。接下来的 m 行,每行 3 个整数 i,j,k(1≤i,j≤n,i=j,0<k≤100),表示城市 i 与 j 之间有一条长为 k 的道路相连。接下来一行为一个整数 d(1≤d≤m),表示战后被破坏的道路的数目。在接下来的 d 行中,每行两个整数 i 和 j,表示城市 i 与 j 之间直接相连的道路被破坏。最后一行为两个整数 A 和 B,代表需要恢复交通的两个重要城市。
给出 B 地区的村庄数 N,村庄编号从 0 到 N−1,和所有 M 条公路的长度,公路是双向的。并给出第 i 个村庄重建完成的时间 ti,你可以认为是同时开始重建并在第 ti 天重建完成,并且在当天即可通车。若 ti 为 0 则说明地震未对此地区造成损坏,一开始就可以通车。之后有 Q 个询问 (x,y,t),对于每个询问你要回答在第 t 天,从村庄 x 到村庄 y 的最短路径长度为多少。如果无法找到从 x 村庄到 y 村庄的路径,经过若干个已重建完成的村庄,或者村庄 x 或村庄 y 在第 t 天仍未重建完成,则需要输出 −1。