#GOC1042. (课程ZC)练习2:置换的“周期”

(课程ZC)练习2:置换的“周期”

题目描述

N个数的全排列有N!种,比如5个数的排列有5!=120种。但是,前面的置换( 3 4 5 2 1 )我们看到,置换6次后,数列就还原了。
显然,置换( 3 4 5 2 1 )只能得到6个不同的排列,或称这个置换的周期是6。
当N比较大时,周期有可能回很大!

输入格式

第一行1个正整数:N,范围在[1, 1000000],表示字符串长度。
 第二行:有N个整数,为1到N的一个全排列,表示一个置换。

输出格式

 一行,1个数,表示置换的周期数。注意输出的是:答案%1000007。

输入/输出例子1

5
5 3 2 1 4
6