P1157

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

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

每年万圣节,威斯康星州的奶牛们都会精心打扮,并前往农场中的 NN 个牛棚采集糖果。每当一头奶牛到达一个此前未经过的牛棚时,就会采集该牛棚中的 11 颗糖果。

约翰为每个牛棚设置了一个“后继牛棚”。牛棚 ii 的后继牛棚为 XiX_i。奶牛到达一个牛棚后,会继续前往该牛棚的后继牛棚,并不断重复这一过程。

第 ii 头奶牛从牛棚 ii 出发。当她再次到达一个已经经过的牛棚时,之后便无法再获得新的糖果。

请计算每头奶牛能够采集到的糖果数量。

输入格式

第一行包含一个整数 NN,表示牛棚和奶牛的数量。

接下来 NN 行,第 ii 行包含一个整数 XiX_i,表示牛棚 ii 的后继牛棚。

输出格式

输出共 NN 行,第 ii 行包含一个整数,表示第 ii 头奶牛能够采集到的糖果数量。

样例输入

4
1
3
2
3

样例输出

1
2
2
3

样例解释

第 22 头奶牛从牛棚 22 出发,依次经过牛棚 2,3,22,3,2,共经过 22 个不同的牛棚,因此可以采集 22 颗糖果。

第 33 头奶牛从牛棚 33 出发,依次经过牛棚 3,2,33,2,3,共经过 22 个不同的牛棚,因此可以采集 22 颗糖果。

第 44 头奶牛从牛棚 44 出发,依次经过牛棚 4,3,2,34,3,2,3,共经过 33 个不同的牛棚,因此可以采集 33 颗糖果。

数据范围

  • 1≤N≤1051\le N\le 10^5。

来源与许可

本题为 USACO 2008 December 试题「Trick or Treat on the Farm」,题面与测试数据整理自 BZOJ。

样例 1

输入

4
1
3
2
3

输出

1
2
2
3