#B2171. 结点子树大小

结点子树大小

题目描述

给定一棵包含 nn 个结点的树,结点编号为 1n1 \sim n。我们将 11 号结点指定为这棵树的根。

对于树中的任意一个结点 uu,定义其 子树uu 本身以及所有以 uu 为祖先的结点集合。子树大小 定义为该子树中包含的结点总数。

请你计算并输出这棵树中每个结点的子树大小。

输入格式

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

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

输出格式

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

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

提示

样例解释

对于样例 1,构成的树如下图所示:

:::align{center}

:::

对于样例 2,构成的树如下图所示:

:::align{center}

:::

数据范围

  • 对于 30%30\% 的数据,满足 n100n \le 100
  • 对于 60%60\% 的数据,满足 n1000n \le 1000
  • 对于 100%100\% 的数据,满足 1n500,0001 \le n \le 500,000。保证输入的各条边能组成一棵含有 nn 个结点的树。