AT_kupc2024_o Ordinary Blossom Algorithm

Description

$ 1 $ から $ N $ までの番号がついた、頂点 $ 1 $ を根とする $ N $ 頂点の根付き木があります。 $ i $ 番目の辺は頂点 $ A_i $ と頂点 $ B_i $ を結ぶ辺です。 各頂点には重みが付いており、頂点 $ v $ の重みは $ W_v $ です。 あなたの目標は次の操作を任意の回数行い、最終的に $ 1 $ 頂点からなる木にすることです。 - 根から伸びるパスを $ 1 $ つ選び、含まれる辺を全て縮約して新しい根とする。そして、新しい根の重みをパスに含まれていた頂点の重みの総和 $ S $ に設定し、コストに $ S $ を加算する。 目標を達成する操作列で操作回数が最小となるもののうち、かかるコストの最小値と最大値を求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ B_1 $ $ \vdots $ $ A_{N-1} $ $ B_{N-1} $ $ W_1 $ $ W_2 $ $ \cdots $ $ W_N $

Output Format

目標を達成する操作列で操作回数が最小となるものの中で、かかるコストの最小値と最大値を $ C_{\min},C_{\max} $ とする。 $ 2 $ つの値をこの順番に空白区切りで出力せよ。 > $ C_{\min} $ $ C_{\max} $

Explanation/Hint

### Sample Explanation 1 $ 1 $ 頂点の木にするための最小の操作回数は $ 2 $ 回です。 最初にパス $ 1-2-4 $ を選ぶと、新しい根(頂点 $ 5 $ とする)と頂点 $ 3 $ がつながった状態になり、 $ S=50 $ が根の重みになります。次に、パス $ 5-3 $ を選ぶと木が重み $ S=51 $ の $ 1 $ 頂点となり操作が終了します。このときのコストは $ 50+51=101 $ となり、 $ 2 $ 回で目標を達成するときのコストの最大値をとります。 また、パス $ 1-3 $ (新しい根を頂点 $ 5 $ とする)、パス $ 5-2-4 $ の順に操作するとコストは $ 21+51=72 $ となり、 $ 2 $ 回で目標を達成するときのコストの最小値をとります。 ### Constraints - 入力は全て整数 - $ 2 \le N \le 2 \times 10^5 $ - $ 1 \le A_i,B_i \le N $ - $ 1 \le W_v \le 10^8 $ - 入力で与えられるグラフは木