AT_abc240_e [ABC240E] Ranges on Tree

Description

[problemUrl]: https://atcoder.jp/contests/abc240/tasks/abc240_e $ N $ 頂点の根付き木が与えられます。頂点 $ 1 $ が根です。 $ i\ =\ 1,\ 2,\ \ldots,\ N-1 $ について、$ i $ 番目の辺は頂点 $ u_i $ と頂点 $ v_i $ を結んでいます。 $ i\ =\ 1,\ 2,\ \ldots,\ N $ について、頂点 $ i $ を根とする部分木に含まれる頂点全体からなる集合を $ S_i $ で表します。(各頂点は自身を根とする部分木に含まれます。すなわち、$ i\ \in\ S_i $ です。) また、整数 $ l,\ r $ について、$ l $ 以上 $ r $ 以下の整数全体からなる集合を $ [l,\ r] $ で表します。 すなわち、$ [l,\ r]\ =\ \lbrace\ l,\ l+1,\ l+2,\ \ldots,\ r\ \rbrace $ です。 整数の $ 2 $ つ組を $ N $ 個並べた列 $ \big((L_1,\ R_1),\ (L_2,\ R_2),\ \ldots,\ (L_N,\ R_N)\big) $ であって以下の条件を満たすものを考えます。 - $ 1\ \leq\ i\ \leq\ N $ を満たすすべての整数 $ i $ について、$ 1\ \leq\ L_i\ \leq\ R_i $ - $ 1\ \leq\ i,\ j\ \leq\ N $ を満たすすべての整数の組 $ (i,\ j) $ について次が成り立つ - $ S_i\ \subseteq\ S_j $ ならば、$ [L_i,\ R_i]\ \subseteq\ [L_j,\ R_j] $ - $ S_i\ \cap\ S_j\ =\ \emptyset $ ならば、$ [L_i,\ R_i]\ \cap\ [L_j,\ R_j]\ =\ \emptyset $ そのような $ \big((L_1,\ R_1),\ (L_2,\ R_2),\ \ldots,\ (L_N,\ R_N)\big) $ が少なくとも $ 1 $ つ存在することが示せます。 それらのうち、登場する整数の最大値 $ \max\ \lbrace\ L_1,\ L_2,\ \ldots,\ L_N,\ R_1,\ R_2,\ \ldots,\ R_N\ \rbrace $ が最小のものを $ 1 $ つ出力してください。(複数ある場合はどれを出力しても正解となります。)

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ u_1 $ $ v_1 $ $ u_2 $ $ v_2 $ $ \vdots $ $ u_{N-1} $ $ v_{N-1} $

Output Format

下記の形式で $ N $ 行出力せよ。すなわち、$ i\ =\ 1,\ 2,\ \ldots,\ N $ について、$ i $ 行目に $ L_i $ と $ R_i $ を空白区切りで出力せよ。 > $ L_1 $ $ R_1 $ $ L_2 $ $ R_2 $ $ \vdots $ $ L_N $ $ R_N $

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ 1\ \leq\ u_i,\ v_i\ \leq\ N $ - 入力はすべて整数 - 与えられるグラフは木である ### Sample Explanation 1 $ (L_1,\ R_1)\ =\ (1,\ 2),\ (L_2,\ R_2)\ =\ (2,\ 2),\ (L_3,\ R_3)\ =\ (1,\ 1) $ が問題文中の条件を満たします。 実際、$ [L_2,\ R_2]\ \subseteq\ [L_1,\ R_1],\ [L_3,\ R_3]\ \subseteq\ [L_1,\ R_1],\ [L_2,\ R_2]\ \cap\ [L_3,\ R_3]\ =\ \emptyset $ が成り立ちます。 また、$ \max\ \lbrace\ L_1,\ L_2,\ L_3,\ R_1,\ R_2,\ R_3\ \rbrace\ =\ 2 $ であり、これが最小です。