配点 : 625 点
問題文
頂点には 1 から N の番号が、辺には 1 から M の番号がついた N 頂点 M 辺の連結無向グラフがあります。
辺 i は頂点 Ui と頂点 Vi を結んでおり、重みとして整数 Wi が定められています。
ここで、1≤s,t≤N, s=t に対して d(s,t) を以下で定義します。
- 頂点 s と頂点 t を結ぶすべてのパスに対する「パス上の辺の重みの最大値」の最小値
今から与えられる Q 個のクエリにそれぞれ答えてください。j 番目のクエリは以下の通りです。
- Aj,Sj,Tj が与えられる。辺 Aj の重みを 1 増やすと d(Sj,Tj) がいくつ変化するか求めよ。
なお、各クエリにおいて実際には辺の重みは変更しないことに注意してください。
制約
- 2≤N≤2×105
- N−1≤M≤2×105
- 1≤Ui,Vi≤N
- Ui=Vi
- 1≤Wi≤M
- 与えられるグラフは連結
- 1≤Q≤2×105
- 1≤Aj≤M
- 1≤Sj,Tj≤N
- Sj=Tj
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N M
U1 V1 W1
⋮
UM VM WM
Q
A1 S1 T1
⋮
AQ SQ TQ
出力
Q 行出力せよ。
j (1≤j≤Q) 行目には、j 番目のクエリに対する答えを出力せよ。
6 6
1 2 1
3 1 5
4 1 5
3 4 3
5 6 4
2 6 5
7
1 4 6
2 4 6
3 4 6
4 4 6
5 4 6
6 4 6
5 6 5
0
0
0
0
0
1
1
上の図においては、辺の番号を黒字で、辺の重みを青字で表記しています。
1 番目から 6 番目のクエリについて説明します。
まず与えられたグラフにおける d(4,6) について考えます。
4→1→2→6 というパス上の辺の重みの最大値は 5 ですが、
これは頂点 4 と頂点 6 を結ぶパスの中での最小値であるため、d(4,6)=5 です。
次に、辺 x (1≤x≤6) の重みを 1 増やすと d(4,6) がいくつ変化するか考えます。
x=6 のとき d(4,6)=6 となるため変化量は 1 ですが、x=6 のときは d(4,6)=5 となるため変化量は 0 です。
たとえば x=3 のとき、4→1→2→6 というパス上の辺の重みの最大値は 6 になりますが、
$4 \rightarrow 3 \rightarrow 1 \rightarrow 2 \rightarrow 6$ というパス上の辺の重みの最大値が 5 であるため d(4,6) は変わらず 5 のままです。
2 2
1 2 1
1 2 1
1
1 1 2
0
与えられるグラフは多重辺を含むこともあります。