bzoj#P1589. [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果

[Usaco2008 Dec]Trick or Treat on the Farm 采集糖果

题目描述

每年万圣节,威斯康星的奶牛们都要打扮一番,出门在农场的 nn 个牛棚里转悠,来采集糖果。她们每走到一个未曾经过的牛棚,就会采集这个棚里的 11 颗糖果。农场不大,所以约翰要想尽法子让奶牛们得到快乐。

他给每一个牛棚设置了一个「后继牛棚」。牛棚 ii 的后继牛棚是 xix_i。他告诉奶牛们,她们到了一个牛棚之后,只要再往后继牛棚走去,就可以搜集到很多糖果。事实上这是一种有点欺骗意味的手段,来节约他的糖果,因为每一只奶牛最多只能在同一个牛棚中采集到的一个糖果。第 ii 只奶牛从牛棚 ii 开始她的旅程。请你计算,每一只奶牛可以采集到多少糖果。

输入格式

11 行输入 nn,之后输入 nnnn 个整数,其中第 i+1i + 1 的整数表示牛棚 ii 的后继牛棚 xix_i

输出格式

nn 行,一行一个整数表示一只奶牛可以采集的糖果数量。

4
1
3
2
3
1
2
2
3

样例说明 1

11 头牛:111\rightarrow 1,总共到达 11 个牛棚。
22 头牛:2322\rightarrow 3\rightarrow 2,总共到达 22 个牛棚。
33 头牛:3233\rightarrow 2\rightarrow 3,总共到达 22 个牛棚。
44 头牛:43234\rightarrow 3\rightarrow 2\rightarrow 3,总共到达 33 个牛棚。

数据规模与约定

对于 100%100\% 的数据,1n1051\le n\le 10^5

提示

由于原题面表意不清,在完全不影响题意的情况下进行了部分修改与补充。