#abc240e. [abc240_e]Ranges on Tree

[abc240_e]Ranges on Tree

问题描述

给定一个包含 NN 个顶点的有根树,根节点为顶点 11
对于每个 i=1,2,,N1i = 1, 2, \ldots, N-1,第 ii 条边连接顶点 uiu_i 和顶点 viv_i

对于每个 i=1,2,,Ni = 1, 2, \ldots, N,设 SiS_i 表示以顶点 ii 为根的子树中的所有顶点(每个顶点都属于以自身为根的子树,即 iSii \in S_i)。

此外,对于整数 llrr,记 \[l, r\]llrr 之间的所有整数的集合,即 \[l, r\] = \lbrace l, l+1, l+2, \ldots, r \rbrace

考虑满足以下条件的 NN 对整数的序列 ((L1,R1),(L2,R2),,(LN,RN))((L_1, R_1), (L_2, R_2), \ldots, (L_N, R_N))

  • 对于每个满足 1iN1 \leq i \leq N 的整数 ii,有 1LiRi1 \leq L_i \leq R_i
  • 对于每对整数 (i,j)(i, j) 满足 1i,jN1 \leq i, j \leq N,满足以下条件:
    • 如果 SiSjS_i \subseteq S_j,则 \[L_i, R_i\] \subseteq \[L_j, R_j\]
    • 如果 SiSj=S_i \cap S_j = \emptyset,则 \[L_i, R_i\] \cap \[L_j, R_j\] = \emptyset

可以证明至少存在一个满足条件的序列 ((L1,R1),(L2,R2),,(LN,RN))((L_1, R_1), (L_2, R_2), \ldots, (L_N, R_N))。在这些序列中,打印一个使得 $\\max \lbrace L_1, L_2, \ldots, L_N, R_1, R_2, \ldots, R_N \\rbrace$ 最小的序列(如果有多个这样的序列,可以打印任意一个)。

约束条件

  • 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


示例输入 1

3
2 1
3 1

示例输出 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$ 是最小可能的值。


示例输入 2

5
3 4
5 4
1 2
1 4

示例输出 2

1 3
3 3
2 2
1 2
1 1

示例输入 3

5
4 5
3 2
5 2
3 1

示例输出 3

1 1
1 1
1 1
1 1
1 1