时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
一天小A在金色的银杏树下向他喜欢的小姐姐B表白了,“对不起,我喜欢的是C”,B这样说道,小A尴尬的笑了笑转身离开了。他心里默默说着“对不起,C喜欢我。”(233333333)
Love triangle被定义为:如果A喜欢B,B喜欢C,C喜欢A则称为Love triangle。现在让你寻找有没有Love triangle。
输入描述:
第一行一个正整数N(n<=5000),第二行n个数X1,X2,X3……Xn代表i喜欢Xi。
输出描述:
如果存在Love triangle则输出YES,没有则输出NO。
示例1
输入
复制
5 2 4 5 1 3
输出
复制
YES
长见识,真厉害,这个题刷新了我的定义啊,我一直以为判断有向环呢,结果是一个思维,我真是大吐血,看了答案都想跳楼的那种。直接三层嵌套,暴力求解法,真是帅气的不要不要的。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using
namespace
std;
int
n,a[5050];
int
main()
{
scanf
(
"%d"
,&n);
for
(
int
i=1;i<=n;i++)
scanf
(
"%d"
,&a[i]);
for
(
int
i=1;i<=n;i++)
if
(a[a[a[i]]]==i)
return
puts
(
"YES"
),0;
return
puts
(
"NO"
),0;
}