#abc291h. [abc291_h]Balanced Tree

[abc291_h]Balanced Tree

题目描述

给定一个具有 NN 个顶点的树 TT。第 ii 条边连接了顶点 AiA_iBiB_i

构造一个满足以下条件的、具有 NN 个顶点的有根树 RR

  • 对于所有满足 1leqx<yleqN1 \\leq x < y \\leq N 的整数对 (x,y)(x,y)
    • 如果 RR 中顶点 xxyy 的最低公共祖先是顶点 zz,则在 TT 中顶点 zz 在顶点 xxyy 之间的简单路径上。
  • RR 中,对于除了根以外的所有顶点 vv,以 vv 为根的子树中的顶点数乘以 22 不超过以父亲顶点为根的子树中的顶点数。

我们可以证明这样的有根树总是存在的。

约束条件

  • 1leqNleq1051 \\leq N \\leq 10^5
  • 1leqAi,BileqN1\\leq A_i,B_i \\leq N
  • 输入中的所有值都是整数。
  • 给定的图是一棵树。

输入

输入以以下格式从标准输入给出:

NN A1A_1 B1B_1 vdots\\vdots AN1A_{N-1} BN1B_{N-1}

输出

RR 是满足题目中条件的有根树。假设在 RR 中,顶点 ii 的父亲顶点是顶点 pip_i。(如果 ii 是根,让 pi=1p_i=-1。)
打印 NN 个整数 p1,ldots,pNp_1,\\ldots,p_N,以空格隔开。


示例输入 1

4
1 2
2 3
3 4

示例输出 1

2 -1 4 2

例如,在 RR 中,顶点 11 和顶点 33 的最低公共祖先是顶点 22;在 TT 中,顶点 22 在顶点 11 和顶点 33 之间的简单路径上。
同样地,在 RR 中,以顶点 44 为根的子树有两个顶点,并且乘以 22 后的顶点数不超过以顶点 22 为根的子树的顶点数,后者有 44 个顶点。

图示


示例输入 2

5
1 2
1 3
1 4
1 5

示例输出 2

-1 1 1 1 1