传统题 1000ms 128MiB

燃油补给

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目:沙漠越野赛燃油补给问题

题目描述

一场精彩的沙漠越野赛即将在广袤沙漠中举行。沙漠中分布着 NN 个补给站(编号 11NN ),这些补给站通过 MM 条沙漠公路相连,公路为双向通行。其中第 ii 条公路连接补给站 UiU_iViV_i ,路程为 CiC_i 公里。

参赛选手驾驶的越野车油箱容量为 LL 升,行驶 11 公里消耗 11 升燃油。当探险队抵达某个补给站时,可选择:

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

现有 QQ 个赛程,每个赛程指定从补给站 SjS_j 出发前往目标补给站 TjT_j 。若选手在行驶过程中燃油耗尽,当前赛程挑战失败(不影响后续赛程)并退出比赛。选手从出发补给站出发时,油箱已加满。

需计算对于每个赛程,选手若要挑战成功,从补给站 SjS_jTjT_j 中途至少需补充燃油的次数(不含出发时加满的一箱油) 。若无论如何都无法抵达目的地,则输出 1-1

输入格式

  1. 第一行:三个整数 NNMMLL ,分别表示补给站数量、公路数量、油箱容量。
  2. 接下来 MM 行:每行三个整数 UiU_iViV_iCiC_i ,表示公路连接的两个补给站及公路长度。
  3. 下一行:整数 QQ ,表示赛程数量。
  4. 接下来 QQ 行:每行两个整数 SjS_jTjT_j ,表示每个赛程的出发补给站和目标补给站。

输出格式

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

样例

  • 样例 1 输入
3 2 5
1 2 3
2 3 3
2
1 3
3 2
  • 样例 1 输出
1
0
  • 样例 1 说明
    • 沙漠有 33 个补给站,22 条公路:公路 11 连接补给站 1122 ,长 33 公里;公路 22 连接补给站 2233 ,长 33 公里。越野车油箱容量 55 升,每公里耗油 11 升,出发时油箱加满。
    • 从补给站 3322 的赛程:选手可直接从补给站 33 驶向补给站 22 ,耗油 33 升,油箱剩余 22 升,中途无需补给,输出 00
    • 从补给站 1133 的赛程:选手先从补给站 11 驶向补给站 22 耗油 33 升,此时油箱剩 22 升,而前往补给站 33 还需 33 升油,所以需在补给站 22 补给一次将油箱加满才能继续行驶,输出 11

数据范围

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

劳动节特别赛

未参加
状态
已结束
规则
乐多
题目
12
开始于
2025-5-1 0:00
结束于
2025-5-5 4:00
持续时间
100 小时
主持人
参赛人数
15