问题6942--牛洗牌

6942: 牛洗牌

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 256 MiB

题目描述

【题目描述】

农夫约翰相信快乐的奶牛能产更多的牛奶,他在他的谷仓里安装了一个巨大的迪斯科球,并计划教他的奶牛跳舞!

在查找流行的牛舞时,农夫约翰决定教他的牛跳“牛洗牌”。牛洗牌由他的N头牛(1N100,000)以某种顺序排成一排,然后执行连续的“洗牌”,每一次洗牌都可能重新排序奶牛。为了让他的奶牛更容易找到自己的位置,农民约翰用位置1N标记了他的奶牛队列的位置,因此队列中的第一只奶牛将在位置1,下一只在位置2,依此类推,直到位置N

洗牌由N个数字a1aN描述,其中位置i的奶牛在洗牌过程中移动到位置ai(因此,每个ai都在1N的范围内)。在洗牌过程中,每头牛都会移动到新的位置。不幸的是,所有的ai不一定是不同的,所以在洗牌过程中,多头奶牛可能会尝试移动到相同的位置,之后它们将在所有剩余的洗牌中一起移动。

农民约翰注意到,在他的队列中,无论进行多少次洗牌,有些位置都有奶牛。请帮他数一下这样的位置有多少

【输入格式】(shuffle.in):

第一行输入包含N,即奶牛的数量。下一行包含N个整数a1aN

【输出格式】(shuffle.out):

请输出始终包含奶牛的位置的数量,无论发生多少次洗牌。

【样例输入】:

4

3 2 1 3

【样例输出】:

3

来源/分类