游游的删点直径
题号:NC273198
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,\,游游拿到了一棵树,她定义 f(i) 为:不经过 i 号节点的所有路径中,最长的路径长度。特殊的,如果所有长度不小于1的路径都经过 i 号节点,则 f(i)=0 。
\,\,\,\,\,\,\,\,\,\,现在游游希望你分别求出 f(1) 到 f(n) 的全部的值。

输入描述:

\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n\ (1\le n \le 10^5) 代表树的节点数量。
\,\,\,\,\,\,\,\,\,\,此后 n-1 行,第 i 行输入两个整数 u_iv_i\ (1 \leq u_i, v_i \leq n;\ u_i \neq v_i) 表示树上第 i 条边连接节点 u_iv_i 。保证树联通,没有重边。

输出描述:

\,\,\,\,\,\,\,\,\,\,一共需要输出 n 行,第 i 行输出一个整数代表 f(i) 的值。
示例1

输入

复制
3
1 2
2 3

输出

复制
1
0
1

说明

\,\,\,\,\,\,\,\,\,\,不经过一号节点的最长路径为 2\to 3,长度为 1
\,\,\,\,\,\,\,\,\,\,所有长度不小于 1 的路径都会经过二号节点,因此输出 0
\,\,\,\,\,\,\,\,\,\,不经过三号节点的最长路径为 1\to 2 ,长度为 1
示例2

输入

复制
5
1 2
1 3
1 4
1 5

输出

复制
0
2
2
2
2