Question:PIR - Pyramids
Explaination
Use the formula
Heron-type formula for the volume of a tetrahedron
If U, V, W, u, v, w are lengths of edges of the tetrahedron (first three form a triangle; u opposite to U and so on), then
volume=\/(-a+b+c+d)*(a-b+c+d)*(a+b-c+d)*(a+b+c-d)
192*u*v*w
where
a=\/xYZ b=\/yZX c=\/zXY d=\/xyz
X=(w-U+v)*(U+v+w)
x=(U-v+w)*(v-w+U)
Y=(u-V+w)*(V+w+u)
y=(V-w+u)*(w-u+V)
Z=(v-W+u)*(W+u+v)
z=(W-u+v)*(u-v+W)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<iostream>
#include<math.h>
#define LL long long
#define mx 10010
using namespace std;
int main()
{
double u,v,w,U,V,W;
int t=0;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf%lf%lf%lf%lf",&u,&v,&w,&W,&V,&U);
double a,b,c,d,x,y,z,X,Y,Z;
X=(w-U+v)*(U+v+w);
x=(U-v+w)*(v-w+U);
Y=(u-V+w)*(V+w+u);
y=(V-w+u)*(w-u+V);
Z=(v-W+u)*(W+u+v);
z=(W-u+v)*(u-v+W);
a=sqrt(x*Y*Z);
b=sqrt(y*Z*X);
c=sqrt(z*X*Y);
d=sqrt(x*y*z);
double vol=(b+c+d-a)*(a-b+c+d)*(a+b-c+d)*(a+b+c-d);
vol=sqrt(vol)/(192*u*v*w);
printf("%.4lf\n",vol);
}
return 0;
}
Explaination
Use the formula
Heron-type formula for the volume of a tetrahedron
If U, V, W, u, v, w are lengths of edges of the tetrahedron (first three form a triangle; u opposite to U and so on), then
volume=\/(-a+b+c+d)*(a-b+c+d)*(a+b-c+d)*(a+b+c-d)
192*u*v*w
where
a=\/xYZ b=\/yZX c=\/zXY d=\/xyz
X=(w-U+v)*(U+v+w)
x=(U-v+w)*(v-w+U)
Y=(u-V+w)*(V+w+u)
y=(V-w+u)*(w-u+V)
Z=(v-W+u)*(W+u+v)
z=(W-u+v)*(u-v+W)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<iostream>
#include<math.h>
#define LL long long
#define mx 10010
using namespace std;
int main()
{
double u,v,w,U,V,W;
int t=0;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf%lf%lf%lf%lf",&u,&v,&w,&W,&V,&U);
double a,b,c,d,x,y,z,X,Y,Z;
X=(w-U+v)*(U+v+w);
x=(U-v+w)*(v-w+U);
Y=(u-V+w)*(V+w+u);
y=(V-w+u)*(w-u+V);
Z=(v-W+u)*(W+u+v);
z=(W-u+v)*(u-v+W);
a=sqrt(x*Y*Z);
b=sqrt(y*Z*X);
c=sqrt(z*X*Y);
d=sqrt(x*y*z);
double vol=(b+c+d-a)*(a-b+c+d)*(a+b-c+d)*(a+b+c-d);
vol=sqrt(vol)/(192*u*v*w);
printf("%.4lf\n",vol);
}
return 0;
}
No comments:
Post a Comment