配点 : 600 点
問題文
1 から N までの番号がつけられた N 個の頂点を持つ木があります。
この木の i 番目の辺は頂点 ai と頂点 bi を結び、その色は ci、長さは di です。
ここで各辺の色は 1 以上 N−1 以下の整数で表されており、同じ整数は同じ色に、異なる整数は異なる色に対応します。
以下の Q 個の問いに答えてください。
- 問 j (1≤j≤Q): 色 xj のすべての辺の長さが yj に変更されたと仮定して、二頂点 uj,vj 間の距離を求めよ。(辺の長さの変更はこれ以降の問いには影響しない。)
制約
- 2≤N≤105
- 1≤Q≤105
- 1≤ai,bi≤N
- 1≤ci≤N−1
- 1≤di≤104
- 1≤xj≤N−1
- 1≤yj≤104
- 1≤uj<vj≤N
- 与えられるグラフは木である。
- 入力中のすべての値は整数である。
入力
入力は以下の形式で標準入力から与えられる。
N Q
a1 b1 c1 d1
:
aN−1 bN−1 cN−1 dN−1
x1 y1 u1 v1
:
xQ yQ uQ vQ
出力
Q 行出力せよ。j 行目 (1≤j≤Q) に問 j への回答を出力すること。
5 3
1 2 1 10
1 3 2 20
2 4 4 30
5 2 1 40
1 100 1 4
1 100 1 5
3 1000 3 4
130
200
60
この入力中のグラフは次のようなものです。
ここで、色 1 の辺は赤い実線で、色 2 の辺は緑の太線で、色 4 の辺は青い破線で示されています。
- 問 1: 色 1 のすべての辺の長さが 100 に変更されたと仮定すると、頂点 1,4 間の距離は 100+30=130 です。
- 問 2: 色 1 のすべての辺の長さが 100 に変更されたと仮定すると、頂点 1,5 間の距離は 100+100=200 です。
- 問 3: 色 3 のすべての辺の長さが 1000 に変更されたと仮定すると (そのような辺は存在しません)、頂点 3,4 間の距離は 20+10+30=60 です。この問いでは色 1 の辺の長さが元に戻っていることに注意してください。