AT_scpc2026_div2_k Cosmic Playground
Description
#### 表示言語
/ / 銀河を旅していたナビとヒョンテは,宇宙の遊び場を発見した!宇宙の遊び場には, $ N $ 個のポイントと $ N-1 $ 個の双方向通路がある.宇宙の遊び場の各ポイントには, $ 1 $ 番から $ N $ 番までの番号が振られている. $ i $ 番目の通路は, $ u_i $ 番目のポイントと $ v_i $ 番目のポイントを双方向に結んでいる.任意の異なる2つのポイントは,通路のみを利用して常に行き来することができる.つまり,宇宙の遊び場は木構造である.
各ポイントには,1つずつ滑り台が接続されている.長さ $ N $ の順列 $ P = [P_1, P_2, \dots, P_N] $ について, $ i $ 番目のポイントから滑り台を滑ると, $ P_i $ 番目のポイントへ移動する.
ナビはスピード感を味わうために,途切れることなく滑り台を滑り続けたいと思っている.一方,ヒョンテは,ナビがあまりにも遠いポイントまで移動してしまうと,宇宙で迷子になってしまうのではないかと心配している.ナビとヒョンテは一生懸命考えた結果, $ r $ 番ポイントの**危険度** $ f(r) $ を次のように定義した.
- $ a $ 番ポイントと $ b $ 番ポイントの間の**距離**は, $ a $ 番ポイントから通路のみを利用して $ b $ 番ポイントへ移動するために通らなければならない通路の最小個数である.
- ナビは $ s $ 番目のポイントから出発し,滑り台のみを利用して移動を続け,ヒョンテは $ r $ 番目のポイントからナビを見守る.このとき, $ r $ 番目のポイントとナビが到達可能なポイントとの間の距離のうち,最大値を**最大距離** $ d(r, s) $ と呼ぶ.
- ヒョンテが $ r $ 番ポイントに残っているときの**危険度** $ f(r) $ は,ナビが各ポイントから出発したときの最大距離の和 $ \sum\limits_{s = 1}^{N}{d(r, s)} $ である.
ヒョンテは危険度が最小になるポイントに残りたいと考えている.ヒョンテを助けて,各ポイントの危険度を計算してみよう.
順列とは 長さが $ N $ の**順列**とは、 $ 1 $ から $ N $ までの整数を、それぞれちょうど一つずつ含む数列である。例えば、 $ [2,1,4,3] $ は順列だが、 $ [4, 2, 1, 1] $ や $ [1, 2, 3, 5] $ は順列ではない。
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ P_1 $ $ P_2 $ $ \dots $ $ P_N $ $ u_1 $ $ v_1 $ $ u_2 $ $ v_2 $ $ \vdots $ $ u_{N-1} $ $ v_{N-1} $
Output Format
各ポイントの危険度を表す $ N $ 個の整数 $ f(1), f(2), \dots, f(N) $ を空白区切りで出力せよ.
Explanation/Hint
### Constraints
- $ 3 \le N \le 100\,000 $
- $ 1 \le u_i < v_i \le N $
- 与えられるグラフは木構造
- $ P $ は順列
- 入力される数値はすべて整数