Editorial for UTS Open '15 #6 - Tetrahedra
Submitting an official solution before solving the problem yourself is a bannable offence.
(Curator's note: Due to new test data, the editorial author no longer passes this problem)
Let's solve each face separately, taking the base area of the face and subtracting the area of the portion of the face which lies inside the other tetrahedron.
Suppose our face is defined by the points ,
,
. The base area is:
The face lies on the plane defined by the point
and the normal vector
:
To find the area of the portion enclosed by the other tetrahedron, consider every pair of points and
from the other tetrahedron. If they lie on opposite sides of
(that is,
), intersect the line
with
and add the intersection to the set of points
.
Since ,
,
, and the members of
all lie on
, we can redefine each point to make the problem 2D. Define
and
as follows:
Then, for a point , its new 2D coordinate is
.
The intersection of the projection and the triangle
is a polygon defined by every point
such that:
and
is inside
, or
and
is inside
, or
is at the intersection of the border of
and the border of
We can find the area of this polygon with the Shoelace Theorem. Subtract it from the base area calculated above to find your answer.
Complexity:
Comments