http://acm.hdu.edu.cn/showproblem.php?pid=6512
1.斐波那契数列:任意三个数都不能组成一个三角形a={1,1,2,3,5,8,13,21};
2.a[46]>pow(2,31)-1,即当n大于46时肯定能构成三角形。n小于46时,只要满足f(i-2)+f(i-1)>f(i)就能构成三角形。
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int a[n];
int flag=1;
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
if(n>46)
printf("YES\n");
else
{
for(int i=0;i<n-2;i++)
{
if(a[i]+a[i+1]>a[i+2])
{
printf("YES\n");
flag=0;
break;
}
}
if(flag)
printf("NO\n");
}
}
}