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 C# (judge verdict: Wrong Answer)

using System;
using System.Collections.Generic;
using System.Linq;

class CircumscribedCircleOfATriangle
{
    static void Main()
    {
        Func<double, double, double> get_a = 
        (dx, dy) => 
            dy == 0 ? double.NaN :
            dx == 0 ? 0 : 
            dx / dy;
        Func<double, double, double, double> get_b =
        (mx, my, a) => double.IsNaN( a ) ? mx : my - a * mx;
        var q =
            from n in Enumerable.Repeat( 0, int.Parse( Console.ReadLine() ) )
            let v = Console.ReadLine()
                .Split( ' ' )
                .Select( double.Parse )
                .ToArray()
            let v1x = v[0]
            let v1y = v[1]

            let d12x = v[2] - v1x
            let d12y = v[3] - v1y
            let pb12a = get_a( d12x, d12y )
            let pb12b = get_b( v1x + d12x / 2, v1y + d12y / 2, pb12a )

            let d13x = v[4] - v1x
            let d13y = v[5] - v1y
            let pb13a = get_a( d13x, d13y )
            let pb13b = get_b( v1x + d13x / 2, v1y + d13y / 2, pb13a )

            let px = double.IsNaN( pb12a )
                ? pb12b
                : double.IsNaN( pb13a )
                    ? pb13b
                    : ( pb12b - pb13b ) / ( pb12a - pb13a )
            let py = double.IsNaN( pb12a ) 
                ? pb13a * px + pb13b
                : pb12a * px + pb12b

            let d1px = v1x - px
            let d1py = v1y - py
            let r = Math.Sqrt( d1px * d1px + d1py * d1py )

            select string.Format( "{0:0.000} {1:0.000} {2:0.000}\n", px, py, r );
        Console.Write( new string( q.SelectMany( _ => _ ).ToArray() ) );
    }
}