Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Circumscribed Circle of A Triangle.

Write a program which prints the central coordinate $(p_x, p_y)$ and the radius $r$ of a circumscribed circle of a triangle which is constructed by three points $(x_1, y_1)$, $(x_2, y_2)$ and $(x_3, y_3)$ on the plane surface.

Input

Input consists of several datasets. In the first line, the number of datasets $n$ is given. Each dataset consists of:

$x_1$ $y_1$ $x_2$ $y_2$ $x_3$ $y_3$

in a line. All the input are real numbers.

Output

For each dataset, print $p_x$, $p_y$ and $r$ separated by a space in a line. Print the solution to three places of decimals. Round off the solution to three decimal places.

Constraints

$-100 \leq x_1, y_1, x_2, y_2, x_3, y_3 \leq 100$

$ n \leq 20$

Sample Input

1
0.0 0.0 2.0 0.0 2.0 2.0

Output for the Sample Input

1.000 1.000 1.414

Solution in Ruby (judge verdict: Accepted)

require 'matrix'
n = gets.to_i
 
n.times{
  x1, y1, x2, y2, x3, y3 = gets.split.map(&:to_f)
  a = Math.sqrt((x2-x3)**2+(y2-y3)**2)
  b = Math.sqrt((x3-x1)**2+(y3-y1)**2)
  c = Math.sqrt((x1-x2)**2+(y1-y2)**2)
  ar = Math.acos((b**2+c**2-a**2)/(2*b*c))
  r = 0.5*(a/Math.sin(ar))

  lmn = Matrix[
    [x1, y1, 1],
    [x2, y2, 1],
    [x3, y3, 1]
  ].lup.solve([x1**2+y1**2, x2**2+y2**2, x3**2+y3**2])

  x0 = lmn[0]/2
  y0 = lmn[1]/2

  puts "#{sprintf "%.3f", (x0*1000).round / 1000.0} #{sprintf "%.3f", (y0*1000).round / 1000.0} #{sprintf "%.3f", (r*1000).round / 1000.0}"
}