码迷,mamicode.com
首页 > 其他好文 > 详细

给N条边,请找三条边,使其组成一个三角形,并使得这个三角形的周长最大。

时间:2015-05-07 22:08:11      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:c   c++   acm   算法   编程   

分析:水题,首先对所有边排序,之后只需要判断相邻的三条边是否能组成一个三角形,若能,则当前三角形就是之前所有符合三角形中周长最大的,扫描一遍排序后的结果即可得到最终答案。

#include<iostream>
#include<algorithm>
using namespace std;

int a[10005];

int main()
{
	int n,i,len,tmp;

	while(cin>>n && n)
	{
		len=0;
		for(i=0;i<n;i++)
			cin>>a[i];

		sort(a,a+n);

		len=0;
		for(i=0;i+2<n;i++)
			if(a[i]+a[i+1]>a[i+2])
			{
				tmp=a[i]+a[i+1]+a[i+2];
				len=len>tmp?len:tmp;
			}
		cout<<len<<endl;
	}
    return 0;
}


给N条边,请找三条边,使其组成一个三角形,并使得这个三角形的周长最大。

标签:c   c++   acm   算法   编程   

原文地址:http://blog.csdn.net/a809146548/article/details/45566189

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!