#P005839. 沙漠越野赛

    ID: 5839 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>25-2-C组月赛T4最短路基础图论普及+/提高

沙漠越野赛

当前没有测试数据。

题目描述

精彩纷呈的沙漠越野赛就要开始了,比赛将在在浩瀚的沙漠中举行。

沙漠中分布着 NN 个补给站(编号为 1N1 \sim N)。各补给站之间通过 MM 条沙漠公路相连,每条公路均为双向通行。第 ii 条公路连接补给站 UiU_i 和补给站 ViV_i,路程为 CiC_i 公里。

参赛选手驾驶着越野车穿越沙漠,越野车的油箱容量为 LL 升,行驶 11 公里需要消耗 11 升燃油。每当探险队到达某个补给站时,他们可以选择:

  • 在补给站将油箱加满
  • 不加油,直接前往下一个补给站。

现有 QQ 个赛程,第 jj 个赛程从指定的补给站 SjS_j 出发前往目标补给站 TjT_j。选手如果在行驶过程中因燃油耗尽而中途熄火,则当前赛程挑战失败(不影响下一个赛程的挑战),退出比赛。选手从指定的补给站出发时,他的容量为 LL 的油箱已加满。

请问对于每个赛程,选手如果想要挑战成功,从补给站 SjS_j 到补给站 TjT_j 中途至少需要补充多少次燃油(不含出发时加满的一箱油)?

输入格式

11 行输入三个整数 N,M,LN, M, L

接下来 MM 行,每行输入三个整数 Ui,Vi,CiU_i, V_i, C_i

下一行读入整数 QQ

接下来 QQ 行,每行输入两个整数 Sj,TjS_j, T_j

输出格式

输出 QQ 行,每行输出一个整数。第 jj 行的数字表示从补给站 SjS_jTjT_j 的赛程中,选手至少需要补给燃油的次数,如果无论如何都无法抵达目的地,则输出 1-1

样例 #1

输入

3 2 5
1 2 3
2 3 3
2
3 2
1 3

输出

0
1

数据范围

对于 100%100\% 的数据,满足 2N3002 \le N \le 3000MN(N1)20 \le M \le \frac{N(N-1)}{2}1L1091 \le L \le 10^91Ui,ViN1 \le U_i, V_i \le NUiViU_i \neq V_i,每一对 Ui,ViU_i, V_i 均不重复(即无重边),1Ci1091 \le C_i \le 10^91QN(N1)1 \le Q \le N(N-1)1Sj,TjN1 \le S_j, T_j \le NSjTjS_j \neq T_j