题目链接:
http://codeforces.com/problemset/problem/766/B
题解:
简单题,直接用两边之和大于第三边的方法直接去计算就行了,这里,可以用贪心的方法来做,通过对边的贪心,即可得到答案。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e5+10;
#define met(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
int num[maxn];
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
cin>>num[i];
sort(num,num+n);
int flag=false;
for(int i=0;i<n-2;i++)
{
if(num[i]+num[i+1]>num[i+2])
flag=true;
}
if(flag)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}