问题 6130 --树的最长路

6130: 树的最长路

题目描述

给定一棵 $n$ 个结点的树,$1$ 号点为根,树上相邻两点之间的距离均为 $1$。请为树上每个点求出距离最远的点,并输出这些最长路的距离。

输入

+ 第一行:单个整数表示 $n$; + 第二行:$n-1$ 个整数表示 $p_2$ 到 $p_n$,$p_i$ 表示 $i$ 号点父亲的编号,保证有 $1\leq p_i

输出

+ $n$ 个整数:表示从第 $i$ 个点出发的最长路的长度。

样例输入输出

输入#1 复制
5
1 2 3 4
输出#1 复制
4 3 2 3 4
输入#2 复制
5
1 1 1 1
输出#2 复制
1 2 2 2 2

提示

+ 对于 $30\%$ 的数据, $n\leq 200$; + 对于 $60\%$ 的数据, $n\leq 5000$; + 对于 $100\%$ 的数据, $1\leq n\leq 200,000$。样例1说明:这棵树形如一条链
序号 标题 作者 发表时间 费用 订购数 操作