zoukankan      html  css  js  c++  java
  • 1001-度度熊拼三角

    1001-度度熊拼三角

    题目:

     Time Limit: 2000/1000 MS (Java/Others)
     
     Memory Limit: 65536/65536 K (Java/Others)
    Problem Description

    度度熊有 NN 根木棒,每根木棒的长度为a_iai​​。

    现在要挑选其中的三根,问能拼出的三角形的最大周长是多少。

    如果不能拼成任何一个三角形,输出 -11。

    Input

    多组数据(不超过1010组),读到EOF结束。

    对于每一组数据:

    第一行一个数 NN 表示木棒数量。

    第二行一共 NN 个数,描述每一根木棒的长度。

    1 leq N leq 10001N1000

    木棒长度都是不超过100000100000的正整数

    Output

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

    Sample Input
    3
    1 1 100
    7
    1 9 9 90 2 2 4
    Sample Output
    -1
    22

    思路:

         简单贪心,先将木棒按照长度sort 一遍,在从最长的开始向前取,如果能组成三角形就是答案

    代码:

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    const int maxn = 1e3+30;
    int a[maxn];
    int ok(int a, int b, int c)
    {
        return a+b>c && a+c > b && b+c > a;
    }
    
    int main()
    {
        int n;
        while(~scanf("%d", &n))
        {
            for (int i = 1 ; i <= n ; i ++)
            {
                scanf("%d", a+i);
            }
            sort(a+1, a+1+n);
            int ans = -1;
            for (int i = n ; i >= 3 ; i --)
            {
                if (ok(a[i], a[i-1], a[i-2]))
                {
                    ans = a[i] + a[i-1] + a[i-2];
                    break;
                }
            }
            printf("%d
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    动手动脑——登录界面
    异常处理动手动脑问题
    继承与多态
    课程作业04——动手动脑(字符串String)
    创建过的对象的个数
    类和对象动手动脑问题
    第二周进度条
    构建之法阅读笔记01
    新课程界面
    软件工程概论课后作业01
  • 原文地址:https://www.cnblogs.com/longl/p/9460758.html
Copyright © 2011-2022 走看看