atcoder#ABC143E. [ABC143E] Travel by Car
[ABC143E] Travel by Car
题目描述
から までの番号がついた 個の町と 本の道があります。 本目の道は町 と町 を双方向に結び、その長さは です。
高橋君はこれらの町の間を、道を車で通行することで移動します。車の燃料タンクの容量は リットルであり、距離 を移動する度に燃料を リットル消費します。移動中に町を訪れた場合、燃料をタンクが一杯になるまで補給することが出来ます (補給しないという選択も可能です)。道の途中で燃料が尽きるような移動は出来ません。
以下の 個のクエリに答えてください。
- はじめ、車の燃料タンクは一杯です。町 から町 へ移動するとき、最小で何回途中で燃料を補給する必要があるかを答えてください。町 まで移動出来ない場合は を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
行出力せよ。
行目には、町 から町 へ移動するとき、最小で何回燃料を補給する必要があるかを出力せよ。町 まで移動出来ない場合は を出力せよ。
题目大意
个小镇, 条双向道路。第 条道路从 通向 ,长度为 。车的油箱容量为 ,当行驶到一个镇上时可以选择加满油或者什么都不做。行驶单位长度的距离消耗一单位的油。
现在回答 个问题:
- 油箱现在为满,从 到 ,最少需要加油多少次,或者输出无解。
,,无重边,无自环。。
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
提示
制約
- 入力は全て整数
- $ \left(A_i,\ B_i\right)\ \neq\ \left(A_j,\ B_j\right) $ ( のとき)
- $ \left(A_i,\ B_i\right)\ \neq\ \left(B_j,\ A_j\right) $ ( のとき)
- $ \left(s_i,\ t_i\right)\ \neq\ \left(s_j,\ t_j\right) $ ( のとき)
Sample Explanation 1
町 から町 へ移動するときは、 本目の道を使えば、途中で燃料を補給することなく町 へ到着することが出来ます。 町 から町 へ移動するときは、まず 本目の道を使って町 へ移動し、燃料をタンク一杯まで補給し、 本目の道を使うことにより、町 へ到着することが出来ます。
Sample Explanation 2
道が無いこともあります。