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: Accepted)

using System;

namespace AOJ
{
    class CircumscribedCircle
    {
        public static void Main()
        {
            int cnt = int.Parse(Console.ReadLine());
            for (int i = 1; i <= cnt; i++)
            {
                var input = Console.ReadLine().Trim().Split(' ');
                double x1 = double.Parse(input[0]);
                double y1 = double.Parse(input[1]);
                double x2 = double.Parse(input[2]);
                double y2 = double.Parse(input[3]);
                double x3 = double.Parse(input[4]);
                double y3 = double.Parse(input[5]);
                double x12 = Math.Pow(x1,2);
                double y12 = Math.Pow(y1,2);
                double x22 = Math.Pow(x2,2);
                double y22 = Math.Pow(y2,2);
                double x32 = Math.Pow(x3,2);
                double y32 = Math.Pow(y3,2);
                double x = ((y1 - y3) * (y12 - y22 + x12 - x22) - (y1 - y2) * (y12 - y32 + x12 - x32)) /
                    (2 * (y1 - y3) * (x1 - x2) - 2 * (y1 - y2) * (x1 - x3));
                double y = ((x1 - x3) * (x12 - x22 + y12 - y22) - (x1 - x2) * (x12 - x32 + y12 - y32)) /
                    (2 * (x1 - x3) * (y1 - y2) - 2 * (x1 - x2) * (y1 - y3));
                double r = Math.Sqrt(Math.Pow(x1 - x, 2) + Math.Pow(y1 - y, 2));
                x = Math.Round(x * 1000, MidpointRounding.AwayFromZero) / 1000;
                y = Math.Round(y * 1000, MidpointRounding.AwayFromZero) / 1000;
                r = Math.Round(r * 1000, MidpointRounding.AwayFromZero) / 1000;
                Console.WriteLine(x.ToString("F3") + " " + y.ToString("F3") + " " + r.ToString("F3"));
            }
        }
    }
}