题目链接:这里
题意 : 问你能否从n个数字中抽出来三个,使得可以构成不退化的三角形。
解法 : 只要排个序,然后判断a[i],a[i-1],a[i+1]能否组成三角形就好了,这样贪心肯定是对的。考虑排序之后a,b,c,d,如果a,b,c不能构成三角形,那么a,b,d肯定更不能构成三角形。
//CF 766B
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+7;
int n, a[maxn];
int main(){
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];
sort(a+1, a+n+1);
int flag = 0;
for(int i = 2; i <= n-1; i++){
if(a[i]+a[i-1] > a[i+1]) flag = 1;
}
if(flag) puts("YES");
else puts("NO");
}