直接打公式就好,推导用到了海伦公式和余弦定理...备一份公式以备不时之需吧..
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
double slove(double a,double b,double c,double p,double q,double r)
{
double p1=(a*a*p*p)*(-a*a+b*b+c*c-p*p+q*q+r*r);
double p2=(b*b*q*q)*( a*a-b*b+c*c+p*p-q*q+r*r);
double p3=(c*c*r*r)*( a*a+b*b-c*c+p*p+q*q-r*r);
double pp=(a*b*r*a*b*r)+(a*c*q*a*c*q)+(b*c*p*b*c*p)+(q*p*r*q*p*r);
double v=sqrt((p1+p2+p3-pp))/12.0;
return v;
}
int main()
{
// freopen("in.txt","r",stdin);
double a,b,c,p,q,r;
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&r,&q,&p);
double ans=slove(a,b,c,p,q,r);
printf("%.4lf\n",ans);
return 0;
}