【题面】
【题解】
题意:给定n根棍子,如果能组成任意一个三角形则输出YES,否则输出NO。
题解:2^31-1范围内的最坏情况即fi-2+fi-1+fi时最多有47项,所以如果有超过47根棍子那么一定存在组成三角形的方案,不超过47的暴力跑即可。
感觉写过类似题啊好眼熟..
【代码】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n)){
int f=0;
if(n>47){
f=1; int x;
for(int i=0;i<n;i++)
scanf("%d",&x);
}
else{
int a[50];
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
for(int i=2;i<n;i++)
if(a[i]<a[i-1]+a[i-2]){
f=1; break;
}
}
if(f) puts("YES");
else puts("NO");
}
return 0;
}