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;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace mondai0010
{
	class Program
	{
		static void Main(string[] args)
		{
			var	n	= int.Parse( Console.ReadLine() );
			for( int i = 0; i < n; i++ ) {
				var	str	= Console.ReadLine().Split();
				var	x1	= double.Parse( str[ 0 ] );
				var	y1	= double.Parse( str[ 1 ] );
				var	x2	= double.Parse( str[ 2 ] );
				var	y2	= double.Parse( str[ 3 ] );
				var	x3	= double.Parse( str[ 4 ] );
				var	y3	= double.Parse( str[ 5 ] );

				double	d1	= x1 - x2;
				double	d2	= y1 - y2;
				double	d3	= x2 - x3;
				double	d4	= y2 - y3;
				double	d5	= x3 - x1;
				double	d6	= y3 - y1;
				double	xp	= (((x1 * x1 + y1 * y1) * d4) + ((x2 * x2 + y2 * y2) * d6) + ((x3 * x3 + y3 * y3) * d2)) /
							   ((x1 * d4) + (x2 * d6) + (x3 * d2)) *
							   0.5;
				double	yp	= (((x1 * x1 + y1 * y1) * d3) + ((x2 * x2 + y2 * y2) * d5) + ((x3 * x3 + y3 * y3) * d1)) / 
							   ((y1 * d3) + (y2 * d5) + (y3 * d1)) * 
							   0.5;
				
				double	r	= Math.Sqrt( ((d1 * d1) + (d2 * d2)) * ((d3 * d3) + (d4 * d4)) * ((d5 * d5) + (d6 * d6)) ) /
							  Math.Abs( (x1 * d4) + (x2 * d6) + (x3 * d2) ) *
							  0.5;

				Console.WriteLine( "{0:f3} {1:f3} {2:f3}", xp, yp, r );
			}
		}
	}
}