题意:有n根棍子,棍子的长度为ai,想要从中选出三根棍子组成周长尽可能长的三角形。请输出三角形的最大周长,若无法组成三角形则输出0;
下面是代码:
#include<iostream>
#include<stdlib.h>
using namespace std;
const int maxn=100;
int main()
{
int a[maxn];
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int maxlen=0,ma,rest;
int len;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
for(int k=j+1;k<n;k++)//保证棍子不被重复选中
{
len=a[i]+a[j]+a[k];
ma=max(a[i],max(a[j],a[k]));
rest=len-ma;
if(rest>ma)//形成三角形,两个最小的边之和大于最大的边
{
maxlen=max(len,maxlen);
}
}
cout<<maxlen<<endl;
return 0;
}