atcoder#ABC291H. [ABC291Ex] Balanced Tree

[ABC291Ex] Balanced Tree

配点 : 600600

問題文

NN 頂点の木 TT が与えられます。ii 番目の辺は頂点 AiA_iBiB_i を結んでいます。

次の条件をともに満たす NN 頂点の根付き木 RR11 つ求めてください。

  • 1x<yN1 \leq x < y \leq N を満たす全ての整数の組 (x,y)(x,y) に対し次が成り立つ- RR における頂点 x,yx,y の最小共通祖先が頂点 zz であるとき、TT において 頂点 x,yx,y を結ぶ単純パス上に頂点 zz が存在する
  • RR における頂点 x,yx,y の最小共通祖先が頂点 zz であるとき、TT において 頂点 x,yx,y を結ぶ単純パス上に頂点 zz が存在する
  • RR において、根以外の全ての頂点 vv に対し、vv を根とする部分木の頂点数の 22 倍は、 vv の親を根とする部分木の頂点数以下である

なお、この条件を満たす根付き木は必ず存在することが証明できます。

制約

  • 1N1051 \leq N \leq 10^5
  • 1Ai,BiN1\leq A_i,B_i \leq N
  • 入力は全て整数である
  • 与えられるグラフは木である

入力

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

NN

A1A_1 B1B_1

\vdots

AN1A_{N-1} BN1B_{N-1}

出力

問題文中の条件を満たす根付き木を RR とする。RR における頂点 ii の親を頂点 pip_i とする(ただし、ii が根のときは pi=1p_i=-1 と定める)。 NN 個の整数 p1,,pNp_1,\ldots,p_N をこの順に空白区切りで出力せよ。

4
1 2
2 3
3 4
2 -1 4 2

例えば、RR における頂点 1,31,3 の最小共通祖先は頂点 22 であり、TT において、頂点 1,31,3 を結ぶ単純パス上に頂点 22 が存在します。 また、例えば、RR における頂点 44 を根とする部分木の頂点数は 22 であり、その 22 倍は、頂点 22 を根とする部分木の頂点数 44 以下です。

図

5
1 2
1 3
1 4
1 5
-1 1 1 1 1