fork download
  1. def volume a, b, c, d, e, f
  2. x0 = (-d + b + c)*( d + b + c)
  3. x1 = ( d - b + c)*( d + b - c)
  4. y0 = ( a - e + c)*( a + e + c)
  5. y1 = ( a + e - c)*(-a + e + c)
  6. z0 = ( a + b - f)*( a + b + f)
  7. z1 = (-a + b + f)*( a - b + f)
  8. s = Math.sqrt(x1 * y0 * z0)
  9. t = Math.sqrt(x0 * y1 * z0)
  10. u = Math.sqrt(x0 * y0 * z1)
  11. v = Math.sqrt(x1 * y1 * z1)
  12. Math.sqrt((-s + t + u + v)*( s - t + u + v)*( s + t - u + v)*( s + t + u - v))/(192*a*b*c)
  13. end
  14.  
  15. while gets
  16. args = $_.split.map &:to_f
  17. puts <<~EOS % [*args, volume(*args)]
  18. lengths of edges: %.8f %.8f %.8f %.8f %.8f %.8f
  19. volume\t\t\t: %.16f
  20. -------------------------------------
  21. EOS
  22. end
  23.  
Success #stdin #stdout 0.01s 6116KB
stdin
1 1 1 1 1 1
1 1 1 1.4142135623730951 1.4142135623730951 1.4142135623730951
stdout
lengths of edges: 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000
volume			: 0.1178511301977579
-------------------------------------
lengths of edges: 1.00000000 1.00000000 1.00000000 1.41421356 1.41421356 1.41421356
volume			: 0.1666666666666666
-------------------------------------