#2905. Travel by Car

0

Travel by Car

Travel by Car

题目描述

有 NN 个城镇,编号为 11 到 NN,以及 MM 条道路。第 ii 条道路双向连接城镇 AiA_i 和城镇 BiB_i,长度为 CiC_i。 Takahashi 将开车在这些城镇之间旅行,经过这些道路。汽车的油箱最多可以装 LL 升燃油,每行驶单位距离消耗一升燃油。在旅行过程中到达某个城镇时,他可以将油箱加满(也可以选择不加满)。如果某次行程会导致在道路中途油箱变空,则不能进行该次行程。 请处理以下 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
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 \leq N \leq 300 0≤M≤N(N−1)20 \leq M \leq \frac{N(N-1)}{2} 1≤L≤1091 \leq L \leq 10^9 1≤Ai,Bi≤N1 \leq A_i, B_i \leq 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 \leq Q \leq N\left(N-1\right) 1≤si,ti≤N1 \leq s_i, t_i \leq 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)从城镇 33 到城镇 22 的旅行中,我们可以使用第二条道路到达城镇 22,在此过程中无需加油。 从城镇 11 到城镇 33 的旅行中,我们可以先使用第一条道路到达城镇 22,加满油箱,然后使用第二条道路到达城镇 33。
可能没有任何道路。

标签: AtCoder|abc143E

来源

AtCoder|abc143E