子树大小统计

题目描述

Y 同学正在研究树形数据结构。他得到了一棵包含 nn 个结点的无向树,结点的编号依次为 11nn。为了方便分析,Y 同学统一将编号为 11 的结点指定为这棵树的根结点。

对于树中的任意一个结点 uu,Y 同学定义其子树为:包含结点 uu 本身,以及所有以 uu 为祖先的结点构成的集合。相应地,一个结点的子树大小被定义为该子树中包含的结点总数。

请你编写程序帮助 Y 同学计算并输出这棵树中每一个结点的子树大小。

输入格式

第一行包含一个整数 nn,表示树的结点个数。

接下来 n1n-1 行,每行包含两个整数 uuvv,表示结点 uu 和结点 vv 之间存在一条无向边。保证输入的数据构成一棵合法的树。

输出格式

输出一行,包含 nn 个用空格隔开的整数。其中第 ii 个整数表示编号为 ii 的结点的子树大小。

样例

样例输入 #1

5
1 2
1 3
2 4
2 5

样例输出 #1

5 3 1 1 1

样例输入 #2

6
1 2
2 3
3 4
4 5
5 6

样例输出 #2

6 5 4 3 2 1

数据范围与约定

对于 100%100\% 的数据,保证 1n500,0001 \le n \le 500,000

子任务编号 分值 nn \le 特殊性质
1 30 100100
2 10001000
3 40 500,000500,000

相关

在下列比赛中:

「果壳杯」 ROUND 41 (Div. 4)