#ABC143E. 驾车旅行

驾车旅行

驾车旅行

题目描述

有 NN 个编号为 11 到 NN 的城镇和 MM 条道路。第 ii 条道路双向连接城镇 AiA_i 和城镇 BiB_i,其长度为 CiC_i。

高桥君驾驶汽车在这些城镇之间移动。汽车油箱容量为 LL 升,每移动距离 11 消耗 11 升燃料。途中经过城镇时,可以将燃料补充至油箱加满(也可以选择不补充)。不能在道路中途耗尽燃料。

请回答以下 QQ 个查询。

  • 开始时,汽车油箱是满的。从城镇 sis_i 移动到城镇 tit_i 时,途中至少需要补充几次燃料?如果无法移动到城镇 tit_i,请输出 −1-1。

输入格式

输入按以下格式从标准输入给出:

NN MM LL
A1A_1 B1B_1 C1C_1
::
AMA_M BMB_M CMC_M
QQ
s1s_1 t1t_1
::
sQs_Q tQt_Q

输出格式

输出 QQ 行。

第 ii 行输出从城镇 sis_i 移动到城镇 tit_i 时至少需要补充几次燃料。如果无法移动到城镇 tit_i,输出 −1-1。

样例

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

从城镇 33 移动到城镇 22 时,使用第 22 条道路即可不中途补充燃料到达城镇 22。

从城镇 11 移动到城镇 33 时,先使用第 11 条道路移动到城镇 22,将燃料补充至油箱加满,再使用第 22 条道路即可到达城镇 33。

4 0 1
1
2 1
-1

可能没有道路。

5 4 4
1 2 2
2 3 2
3 4 3
4 5 2
20
2 1
3 1
4 1
5 1
1 2
3 2
4 2
5 2
1 3
2 3
4 3
5 3
1 4
2 4
3 4
5 4
1 5
2 5
3 5
4 5
0
0
1
2
0
0
1
2
0
0
0
1
1
1
0
0
2
2
1
0

数据范围

  • 输入均为整数
  • 2≤N≤3002 \le N \le 300
  • 0≤M≤N(N−1)20 \le M \le \frac{N(N-1)}{2}
  • 1≤L≤1091 \leq L \leq 10^9
  • 1≤Ai,Bi≤N1 \le A_i, B_i \le N
  • Ai≠BiA_i \neq B_i
  • (Ai,Bi)≠(Aj,Bj)\left(A_i, B_i\right) \neq \left(A_j, B_j\right)(当 i≠ji \neq j 时)
  • (Ai,Bi)≠(Bj,Aj)\left(A_i, B_i\right) \neq \left(B_j, A_j\right)(当 i≠ji \neq j 时)
  • 1≤Ci≤1091 \leq C_i \leq 10^9
  • 1≤Q≤N(N−1)1 \le Q \le N\left(N-1\right)
  • 1≤si,ti≤N1 \le s_i, t_i \le N
  • si≠tis_i \neq t_i
  • (si,ti)≠(sj,tj)\left(s_i, t_i\right) \neq \left(s_j, t_j\right)(当 i≠ji \neq j 时)
难度 提高
通过率 —
尝试 0
通过 0
ID
1804
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签