百度之星度度熊拼三角

度度熊拼三角

Accepts: 2536

Submissions: 4433

Time Limit: 2000/1000 MS (Java/Others)

Memory Limit: 65536/65536 K (Java/Others)

Problem Description

度度熊有 N 根木棒,每根木棒的长度为ai 。 现在要挑选其中的三根,问能拼出的三角形的最大周长是多少。 如果不能拼成任何一个三角形,输出 −1 。

Input

多组数据(不超过10 组),读到EOF结束。 对于每一组数据: 第一行一个数 N 表示木棒数量。 第二行一共 N 个数,描述每一根木棒的长度。 1≤N≤1000 木棒长度都是不超过100000 的正整数

Output

对于每一组数据,输出一个数表示答案。

Sample Input

Copy

3
1 1 100
7
1 9 9 90 2 2 4

Sample Output

Copy

-1
22

水题,排序判断一下就好

#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<list>
#include<map>
#include<vector>
#include<string>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
int a[1000010];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        memset(a,0,sizeof(a));
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        sort(a,a+n);
        int flag=0;
        for(int i=n-1;i>=2;i--){
            if(a[i]<(a[i-1]+a[i-2])){
                printf("%d\n",a[i]+a[i-1]+a[i-2]);
                flag=1;
                break;
            }
        }
        if(flag==0){
            printf("-1\n");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qibage/article/details/81590110