atcoder#ABC240E. [ABC240E] Ranges on Tree

[ABC240E] Ranges on Tree

配点 : 500500

問題文

NN 頂点の根付き木が与えられます。頂点 11 が根です。 i=1,2,,N1i = 1, 2, \ldots, N-1 について、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結んでいます。

i=1,2,,Ni = 1, 2, \ldots, N について、頂点 ii を根とする部分木に含まれる頂点全体からなる集合を SiS_i で表します。(各頂点は自身を根とする部分木に含まれます。すなわち、iSii \in S_i です。)

また、整数 l,rl, r について、ll 以上 rr 以下の整数全体からなる集合を [l,r][l, r] で表します。 すなわち、[l,r]={l,l+1,l+2,,r}[l, r] = \lbrace l, l+1, l+2, \ldots, r \rbrace です。

整数の 22 つ組を NN 個並べた列 $\big((L_1, R_1), (L_2, R_2), \ldots, (L_N, R_N)\big)$ であって以下の条件を満たすものを考えます。

  • 1iN1 \leq i \leq N を満たすすべての整数 ii について、1LiRi1 \leq L_i \leq R_i
  • 1i,jN1 \leq i, j \leq N を満たすすべての整数の組 (i,j)(i, j) について次が成り立つ- SiSjS_i \subseteq S_j ならば、[Li,Ri][Lj,Rj][L_i, R_i] \subseteq [L_j, R_j]
    • SiSj=S_i \cap S_j = \emptyset ならば、[Li,Ri][Lj,Rj]=[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)$ が少なくとも 11 つ存在することが示せます。 それらのうち、登場する整数の最大値 $\max \lbrace L_1, L_2, \ldots, L_N, R_1, R_2, \ldots, R_N \rbrace$ が最小のものを 11 つ出力してください。(複数ある場合はどれを出力しても正解となります。)

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 入力はすべて整数
  • 与えられるグラフは木である

入力

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

NN

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uN1u_{N-1} vN1v_{N-1}

出力

下記の形式で NN 行出力せよ。すなわち、i=1,2,,Ni = 1, 2, \ldots, N について、ii 行目に LiL_iRiR_i を空白区切りで出力せよ。

L1L_1 R1R_1

L2L_2 R2R_2

\vdots

LNL_N RNR_N

3
2 1
3 1
1 2
2 2
1 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$ であり、これが最小です。

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