度度熊拼三角
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;
}