#ATabc143e. [ABC143E] Travel by Car

[ABC143E] Travel by Car

AT_abc143_e [ABC143E] Travel by Car

题目描述

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

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

请回答以下 QQ 个询问:

  • 一开始,汽车油箱是满的。每个询问给定从城镇 sis_i 到城镇 tit_i,请输出途中最少需要加油多少次才能到达。如果无法到达,请输出 1-1

输入格式

输入以如下格式从标准输入读入。

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

输出格式

输出 QQ 行。

ii 行输出从城镇 sis_i 到城镇 tit_i 最少需要加油的次数。如果无法到达城镇 tit_i,输出 1-1

样例 1

输入

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

输出

0
1

样例 2

输入

4 0 1
1
2 1

输出

-1

样例 3

输入

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

说明/提示

限制条件

  • 所有输入均为整数。
  • 2N3002 \leq N \leq 300
  • 0MN(N1)20 \leq M \leq \frac{N(N-1)}{2}
  • 1L1091 \leq L \leq 10^9
  • 1Ai,BiN1 \leq A_i, B_i \leq N
  • AiBiA_i \neq B_i
  • (Ai,Bi)(Aj,Bj)(A_i, B_i) \neq (A_j, B_j)(当 iji \neq j 时)
  • (Ai,Bi)(Bj,Aj)(A_i, B_i) \neq (B_j, A_j)(当 iji \neq j 时)
  • 1Ci1091 \leq C_i \leq 10^9
  • 1QN(N1)1 \leq Q \leq N(N-1)
  • 1si,tiN1 \leq s_i, t_i \leq N
  • sitis_i \neq t_i
  • (si,ti)(sj,tj)(s_i, t_i) \neq (s_j, t_j)(当 iji \neq j 时)

样例解释 1

从城镇 33 到城镇 22 时,可以直接通过第 22 条道路到达,无需中途加油。从城镇 11 到城镇 33 时,先通过第 11 条道路到达城镇 22,在此加满油,再通过第 22 条道路到达城镇 33

样例解释 2

有可能没有任何道路。

由 ChatGPT 4.1 翻译