首页 > 代码库 > HDU 4386

HDU 4386

http://acm.hdu.edu.cn/showproblem.php?pid=4386

题意:给四条边长,问能否组成四边形,如果能,求最大面积

求最大面积用海伦公式的四边形推广,p=(a+b+c+d)/2,S=sqrt((p-a)*(p-b)*(p-c)*(p-d))

#include <iostream>#include <cstdio>#include <cstring>#include <map>#include <algorithm>#include <queue>#include <cmath>#include <stack>#include <set>using namespace std;int main(){    int T;    scanf("%d",&T);    for(int cas=1;cas<=T;cas++){        int a[4];        for(int i=0;i<4;i++)            scanf("%d",&a[i]);        sort(a,a+4);        printf("Case %d: ",cas);        if(a[3]<(a[0]+a[1]+a[2])){            double p=(a[0]+a[1]+a[2]+a[3])/2.0;            printf("%.6lf\n",sqrt((p-a[0])*(p-a[1])*(p-a[2])*(p-a[3])));        }        else puts("-1");    }    return 0;}
View Code

 

HDU 4386