#dwango2016finald. [dwango2016final_d]木
[dwango2016final_d]木
問題文
頂点からなる重み付き無向木が与えられます。頂点はからまで番号付けられています。
はじめ、すべての辺の重みはです。 頂点に対し、をとを結ぶ最短経路の辺の重みの総和と定めます。
また、頂点に対し、
$f(u,v)=max\\{dist(u2,v2)|dist(u,v2)=dist(u,v)+dist(v,v2) かつ dist(v,u2)=dist(v,u)+dist(u,u2)\\}$
と定めます。すなわち、頂点を互いに遠ざける方向へのみ動かしたときの距離の最大値と定めます。
「木全体のコスト」を
と定めます。
それぞれの辺に対し、その辺の重みをとしたときに「木全体のコスト」がどれだけ増えるか出力するプログラムを作成してください。
入力
入力は以下の形式で標準入力から与えられる。
...
- 行目には、木の頂点を表す整数 が与えられる。
- 行目には、木の辺を示す整数が個空白区切りで与えられる。番目の整数は、頂点と頂点を結ぶ木の辺の辺があることを表す。
部分点
この問題には部分点が設定されている。
- を満たすデータセットに正解した場合、部分点として 点が与えられる。
- を満たすデータセットに正解した場合、部分点として追加で 点が与えられる。合計で点となる。
- 追加の制約のないデータセットに正解した場合、部分点として追加で 点が与えられる。合計で点となる。
出力
個の整数を空白区切りで行に出力せよ。
番目の整数は、辺の重みをとしたときの「木全体のコスト」の増加を表す。
行末に余計な空白を入れないこと。また、出力の最後には改行を忘れないこと。
入力例1
5
1 1 2 2
出力例1
9 9 7 7
辺の重みをとしたとき、
を満たすの組は個あります。
のときは増加し、のときは変化しません。そのため、「木全体のコスト」は増加します。
辺の重みをとしたとき、
のときは1増加し、これら以外のときは変化しません。そのため、「木全体のコスト」は増加します。
辺の重みをとしたとき、
のときは1増加し、これら以外のときは変化しません。そのため、「木全体のコスト」は増加します。
入力例2
8
1 1 2 3 1 4 3
出力例2
24 23 24 18 7 24 18
入力例3
5
1 1 1 1
出力例3
7 7 7 7
入力例4
10
1 2 2 2 3 3 4 5 6
出力例4
9 35 25 25 30 9 25 25 30