南邮 OJ 2063 突发奇想的茂凯

突发奇想的茂凯

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 224            测试通过 : 87 

比赛描述

    扭曲树精茂凯,英勇无畏的他每次战斗之后都会散落一些树枝,怀旧的他都将其收藏了起来,看做是自己胜利的勋章,已知总共收藏了n根树枝,且第i根树枝长为ai

    有一天,茂凯突发奇想——要是从中选出3根树枝,组成周长尽可能大的三角形,最大的可能周长为多少?



输入

首先输入一个正整数T,表示有T组数据(1T100)

对于每组数据,先输入一个正整数n,表示茂凯收藏了n根树枝(3n20)

然后再输入n个正整数,对于第i个数,表示第i根树枝长为ai,(1ai100000)

输出

对于每组测试数据,输出最大周长三角形的周长,若给出的树枝均无法构成三角形,请输出-1;

样例输入

2
5
2 3 4 5 10
4
4 5 10 20

样例输出

12
-1

题目来源

yuman






#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int t,n,i,a[20];
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		for(i=0;i<n;i++){
			scanf("%d",a+i);
		}
		sort(a,a+n);
		i=n-3;
		while(i>=0){
			if(a[i]+a[i+1]>a[i+2]){
				break;
			}
			i--;
		}
		if(i>=0){
			printf("%d\n",a[i]+a[i+1]+a[i+2]);
		}else{
			printf("-1\n");
		}
	}
}


你可能感兴趣的:(ACM,南邮OJ,突发奇想的茂凯)