题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4386
2 1 1 1 1 1 2 3 4
Case 1: 1.000000 Case 2: 4.898979
题意:
给出四条边的长度,求能否形成四边形,如果能形成求最大面积!
PS:
四边形最大面积:
L = (A+B+C+D)/2;
AREA = sqrt((L-A) * (L-B)*(L-C)*(L-D));
代码如下:
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int t;
int cas = 0;
scanf("%d",&t);
while(t--)
{
int a[4];
for(int i = 0; i < 4; i++)
{
scanf("%d",&a[i]);
}
sort(a,a+4);
int sum = a[0]+a[1]+a[2];
if(sum <= a[3])
{
printf("Case %d: -1\n",++cas);
continue;
}
double p = (a[0]+a[1]+a[2]+a[3])/2.0;
double area = sqrt((p-a[0])*(p-a[1])*(p-a[2])*(p-a[3]));
printf("Case %d: %.6lf\n",++cas,area);
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u012860063/article/details/46816091