[USACO Dec08]奶牛的糖果

成绩 0 开启时间 2013年01月22日 星期二 14:30
折扣 0.8 折扣时间 2013年01月22日 星期二 14:30
允许迟交 关闭时间 2013年01月22日 星期二 14:30
输入文件 treat.in 输出文件 treat.out

在威斯康星州每年万圣节前夕奶牛们要通过盛装打扮和收集糖果进行庆祝,农夫约翰把奶牛们留在了他的N (1 <= N <= 100,000)个牛栏中。

     因为牛栏不是足够的大,约翰让奶牛按指定的路线在牛栏间行走。他在牛栏i布置下一个牛栏号next_i (1 <= next_i <= N),以告诉奶牛要怎么行走到下一个牛栏。奶牛需要这样行走以搜集更多的糖果。

     约翰要求奶牛i从i号牛栏开始行走搜集糖果。一头奶牛一旦返回她访问过的牛栏时将停止行走。

     计算每头奶牛访问过的牛栏数,也就是每头奶牛曾经搜集糖果的位置数。

     输入格式:

       第一行:一个单独的整数N

       第2..N+1行:第i+1行包含一个单独的整数next_i

     SAMPLE INPUT (file treat.in):

     4

     1

     3

     2

     3

     输入解释:

     四个牛栏.

       * 牛栏 1 直接让奶牛返回 牛栏 1.

       * 牛栏 2 让奶牛去 牛栏 3

       * 牛栏 3 让奶牛去 牛栏 2

       * 牛栏 4 让奶牛去 牛栏 3

     输出格式:

     * 第1..N行: 行 i 包含一个单独的整数表示曾经访问牛栏的总数

     SAMPLE OUTPUT (file treat.out):

     1

     2

     2

     3

     输出解释:

     奶牛1: 开始于 1, 下一个是 1. 总共访问数是 1.

     奶牛2: 开始于 2, 下一个是 3, 下一个是 2. 总共访问数是 2.

     奶牛3: 开始于 3, 下一个是 2, 下一个是 3. 总共访问数是 2.

     奶牛4: 开始于 4, 下一个是 3, 下一个是 2, 下一个是 3. 总共访问数是 3.