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

给定4根长度的线段,求组成四边形的最大面积

时间:2017-04-27 23:09:31      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:cstring   print   algo   typedef   namespace   sqrt   code   type   names   

 

解题关键:最大面积即4个点都在其外接圆上时的面积。

$p = (a + b + c + d)/2$

$s = \sqrt {(p - a)(p - b)(p - c)(p - d)}$

 只是知道结论,证明过后补

 

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
using namespace std;
typedef long long ll;
double a[10];
int main(){
    ll t;
    scanf("%lld",&t);
    ll i;
    for(i=1;i<=t;i++){
        scanf("%lf%lf%lf%lf",a,a+1,a+2,a+3);
        sort(a,a+4);
        if(a[3]>=a[0]+a[1]+a[2]){
            printf("Case %lld: -1\n",i);
            continue;
        }
        double p=(a[1]+a[2]+a[3]+a[0])/2;
        double s=sqrt((p-a[0])*(p-a[1])*(p-a[2])*(p-a[3]));
        printf("Case %lld: %.6lf\n",i,s);
        
    }
} 

 

给定4根长度的线段,求组成四边形的最大面积

标签:cstring   print   algo   typedef   namespace   sqrt   code   type   names   

原文地址:http://www.cnblogs.com/elpsycongroo/p/6777584.html

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