三边形链表
题号:NC205458
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

链表上有n个节点,编号从1到n,编号为i的节点指向编号为ki的节点,其中1 ≤ ki ≤ n和ki!=i,现在想问你,这个链表中是否存在一个三边形循环链表

输入描述:

一个数字n,表示有n个节点
接下来有n个数字,表示ki

输出描述:

若能形成三边形循环链表,则输出“YES”,否则输出“NO”
示例1

输入

复制
5
2 4 5 1 3

输出

复制
YES

说明

以1为头节点的链表可以形成一个三边形循环链表,1->2->4->1