PIR - Pyramids

Recently in Farland, a country in Asia, the famous scientist Mr. Log Archeo discovered ancient pyramids. But unlike those in Egypt and Central America, they have a triangular (not rectangular) foundation. That is, they are tetrahedrons in the mathematical sense. In order to find out some important facts about the early society of the country (it is widely believed that the pyramid sizes are closely connected with Farland's ancient calendar), Mr. Archeo needs to know the volume of the pyramids. Unluckily, he has reliable data about their edge lengths only. Please, help him!


t [number of tests to follow] In each of the next t lines six positive integer numbers not exceeding 1000 separated by spaces (each number is one of the edge lengths of the pyramid ABCD). The order of the edges is the following: AB, AC, AD, BC, BD, CD.


For each test output a real number - the volume, printed accurate to four digits after decimal point.


1 1 1 1 1 1
1000 1000 1000 3 4 5


hide comments
d_y1997: 2017-06-09 10:17:18

sample testcase passed in terminal , but on submitting shows wrong on the very first case

rishi_devan: 2017-05-02 01:50:49

All sides can be stored as int
The sample test cases are correct

weathervane: 2017-03-11 21:46:01

Interestingly, the question setter posted the problem a few days after posting the more difficult problem TETRA. Note about previous comment which says "Use doubles for input. Test cases contain decimal inputs." The question clearly says "six positive integer numbers". So there are no decimal inputs. There can't be, my answer was accepted.

Last edit: 2017-03-11 22:04:56
epsilonalpha: 2017-03-07 16:44:13

This is a purely formula based problem. If you want to learn something from it, read this article and learn the determinant from here:


Solve the problem using determinants instead of hard-coding the answer. Good luck. :)

Edit: Use doubles for input. Test cases contain decimal inputs.

Last edit: 2017-03-07 16:44:45
nilabja16180: 2017-03-04 13:42:20

AC in one Go!
Just use the formula!

cake_is_a_lie: 2017-02-08 19:04:19

AC on the first try without having to do anything weird.

However, the example test cases are incorrect: the 2nd answer is 1999.9947 not 1999.9937

scorpion_ajay: 2017-01-13 16:01:26

brain_fucked !!
used pow(x, 2) instead of x*x and it worked, don't know why :0

Erick: 2016-12-12 09:02:20

Solved using formula posted by @sy_117
Read all edges as decimals and print the area with printf "%4.f"

Last edit: 2016-12-12 09:04:04
yash_18121998: 2016-11-13 04:52:29

Do remember the correct order of input...and the ans to the second test case given is not the one stated.

harsh_verma: 2016-10-30 10:40:41

don't know about the myth but worked fine with int for me....just keep the order of edges in mind.... :)

Added by:Adam Dzedzej
Time limit:1s
Source limit:10000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS PERL6 VB.NET
Resource:ACM ICPC 2002-2003 NEERC, Northern Subregion