AT_abc143_e.[ABC143E] Travel by Car
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 N 个编号为 1 到 N 的城镇,以及 M 条道路。第 i 条道路连接城镇 Ai 和城镇 Bi,是双向的,道路长度为 Ci。
高桥君可以驾驶汽车在这些城镇之间通过道路移动。汽车的油箱容量为 L 升,每行驶 1 距离消耗 1 升燃料。在途中到达某个城镇时,可以选择将油箱加满(也可以选择不加油)。不能在道路中途燃料耗尽。
请回答以下 Q 个询问:
- 一开始,汽车油箱是满的。每个询问给定从城镇 si 到城镇 ti,请输出途中最少需要加油多少次才能到达。如果无法到达,请输出 −1。
输入格式
输入以如下格式从标准输入读入。
N M L
A1 B1 C1
⋮
AM BM CM
Q
s1 t1
⋮
sQ tQ
输出格式
输出 Q 行。
第 i 行输出从城镇 si 到城镇 ti 最少需要加油的次数。如果无法到达城镇 ti,输出 −1。
输入输出样例
输入#1
3 2 5 1 2 3 2 3 3 2 3 2 1 3
输出#1
0 1
输入#2
4 0 1 1 2 1
输出#2
-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
输出#3
0 0 1 2 0 0 1 2 0 0 0 1 1 1 0 0 2 2 1 0
说明/提示
限制条件
- 所有输入均为整数。
- 2≤N≤300
- 0≤M≤2N(N−1)
- 1≤L≤109
- 1≤Ai,Bi≤N
- Ai=Bi
- (Ai,Bi)=(Aj,Bj)(当 i=j 时)
- (Ai,Bi)=(Bj,Aj)(当 i=j 时)
- 1≤Ci≤109
- 1≤Q≤N(N−1)
- 1≤si,ti≤N
- si=ti
- (si,ti)=(sj,tj)(当 i=j 时)
样例解释 1
从城镇 3 到城镇 2 时,可以直接通过第 2 条道路到达,无需中途加油。从城镇 1 到城镇 3 时,先通过第 1 条道路到达城镇 2,在此加满油,再通过第 2 条道路到达城镇 3。
样例解释 2
有可能没有任何道路。