HDU - 6512 - Triangle(思维)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sugarbliss/article/details/89438316

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6512

题意:给你n个数判断能否组成三角形。

思路:如果不能组成三角形,那么数列是斐波拉契数列级别增长,所以个数 < 50。

#include<bits/stdc++.h>
using namespace std;
const int N = 5e6 + 7;
int a[N];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
        int flag = 0;
        if(n < 50)
        {
           sort(a + 1, a + n + 1);
           for(int i = 1; i <= n - 2; i++)
               if(a[i]+a[i+1]>a[i+2]){ flag = 1; break; }
        }
        else flag = 1;
        puts(flag ? "YES":"NO");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/sugarbliss/article/details/89438316