推了半天没推出来,弃疗了 TAT
看了题解,这尼玛是什么啊啊啊啊啊啊啊啊啊……(此处虐去2^31 - 1个字)
是个公式,记下来就好了
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
double area(double x,double y,double z){
double p = (x + y + z) / 2;
double area = sqrt(p * (p - x) * (p - y) * (p - z));
return area;
}
int main()
{
double ma,mb,mc,a,b,c;
while ( ~scanf("%lf%lf%lf",&ma,&mb,&mc) )
if ( mb <= 0 || mc <= 0 || ma <= 0 )
printf("-1.000\n");
else if ( mb+mc <= ma || ma+mb <= mc || ma+mc <= mb )
printf("-1.000\n");
else {
a = sqrt((8*mb*mb+8*mc*mc-4*ma*ma)/9.0);
b = sqrt((8*ma*ma+8*mc*mc-4*mb*mb)/9.0);
c = sqrt((8*ma*ma+8*mb*mb-4*mc*mc)/9.0);
printf("%.3lf\n",area(a,b,c));
}
return 0;
}