O - Ordinary Blossom Algorithm Editorial /

Time Limit: 3 sec / Memory Limit: 1024 MB

配点 : 100

問題文

1 から N までの番号がついた、頂点 1 を根とする N 頂点の根付き木があります。i 番目の辺は頂点 A_i と頂点 B_i を結ぶ辺です。

各頂点には重みが付いており、頂点 v の重みは W_v です。

あなたの目標は次の操作を任意の回数行い、最終的に 1 頂点からなる木にすることです。

  • 根から伸びるパスを 1 つ選び、含まれる辺を全て縮約して新しい根とする。そして、新しい根の重みをパスに含まれていた頂点の重みの総和 S に設定し、コストに S を加算する。

目標を達成する操作列で操作回数が最小となるもののうち、かかるコストの最小値と最大値を求めてください。

制約

  • 入力は全て整数
  • 2 \le N \le 2 \times 10^5
  • 1 \le A_i,B_i \le N
  • 1 \le W_v \le 10^8
  • 入力で与えられるグラフは木

入力

入力は以下の形式で標準入力から与えられる。

N
A_1 B_1
\vdots
A_{N-1} B_{N-1}
W_1 W_2 \cdots W_N

出力

目標を達成する操作列で操作回数が最小となるものの中で、かかるコストの最小値と最大値を C_{\min},C_{\max} とする。

2 つの値をこの順番に空白区切りで出力せよ。

C_{\min} C_{\max} 

入力例 1

4
1 2
1 3
2 4
20 25 1 5

出力例 1

72 101

1 頂点の木にするための最小の操作回数は 2 回です。

最初にパス 1-2-4 を選ぶと、新しい根(頂点 5 とする)と頂点 3 がつながった状態になり、S=50 が根の重みになります。次に、パス 5-3 を選ぶと木が重み S=511 頂点となり操作が終了します。このときのコストは 50+51=101 となり、 2 回で目標を達成するときのコストの最大値をとります。

また、パス 1-3 (新しい根を頂点 5 とする)、パス 5-2-4 の順に操作するとコストは 21+51=72 となり、2 回で目標を達成するときのコストの最小値をとります。


入力例 2

10
2 4
3 8
7 9
6 3
2 1
9 5
9 6
3 10
9 2
19359725 62617217 96402215 25620070 46288197 40930485 37441368 32164537 69968419 79525817

出力例 2

1525009090 2231445426