Problem2119--爱的魔力转圈圈

2119: 爱的魔力转圈圈

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 74  Solved: 52
[Status] [Submit] [Creator:]

Description

给定一个大小为 n 的数列 A1, A2, A3, ……, An

如果令 x 初始为 1,然后循环将 x 变成 Ax,在这个过程中 x 能够变成 1 到 n 范围内的任何一个整数,则我们称这个数列为“爱的魔力转圈圈数列”。

举个例子,比如一个大小为 5 的数列 2,3,4,5,1(即 A1 = 2, A2 = 3, A3 = 4, A4 = 5, A5 = 1):
· 初始时 x = 1
· 然后 x 变成了 A1 = 2
· 然后 x 变成了 A2 = 3
· 然后 x 变成了 A3 = 4
· 然后 x 变成了 A4 = 5
这样循环下来,x 的值变成过 1,2,3,4,5,所以在这个过程中 x 变成过 1 到 n(本例中 n = 5)范围内的任何一个整数,是一个“爱的魔力转圈圈数列”。

再举一个例子,比如一个大小为 5 的数列 4,3,2,5,1(即 A1 = 4, A2 = 3, A3 = 2, A4 = 5, A5 = 1):
· 初始时 x = 1
· 然后 x 变成了 A1 = 4
· 然后 x 变成了 A4 = 5
· 然后 x 变成了 A5 = 1(又变回了 1)
我们会发现在这个过程中 x 的值只变成过 1,4,5,而永远不会变成 2 或 3,所以这个数列不是一个“爱的魔力转圈圈数列”。

请你判断给定的数列 A 是否是一个“爱的魔力转圈圈数列”?

Input

输入的第一行包含一个整数 n(1 ≤ n ≤ 10000)。
输入的第二行包含 n 个整数 A1, A2, ……, An(1 ≤ Ai ≤ n),两两之间以一个空格分隔。

Output

如果数列是“爱的魔力转圈圈数列”,输出 "YES";否则,输出 "NO"。

Sample Input Copy

【样例输入1】
5
3 5 2 1 4
【样例输出1】
YES
【样例输入2】
6
2 3 1 5 6 4
【样例输出2】
NO

Source/Category