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 JAVA (judge verdict: Accepted)

import java.util.Scanner;

public class Main{

	public static void main(String args[]){
		new Main().mainrun();
	}

	private Scanner scan;
	private int n;

	double px,py,r;
	double x1,x2,x3,y1,y2,y3;			//読み込み用
	double x12,x23,y12,y23,xy12,xy23;	//演算用

	private void mainrun() {
		scan = new Scanner(System.in);

		n = scan.nextInt();

		for(int i = 0;i < n;i++) {
			looprun();
		}

		scan.close();
	}

	private void looprun() {

		x1 = scan.nextDouble();
		y1 = scan.nextDouble();
		x2 = scan.nextDouble();
		y2 = scan.nextDouble();
		x3 = scan.nextDouble();
		y3 = scan.nextDouble();

		x12 = 2 * ( x2 - x1) ;
		x23 = 2 * ( x3 - x2 );
		y12 = 2 * ( y2 - y1 );
		y23 = 2 * ( y3 - y2 );
		xy12 = x1 * x1 - x2 * x2 + y1 * y1 - y2 * y2;
		xy23 = x2 * x2 - x3 * x3 + y2 * y2 - y3 * y3;

		py = (x23 * xy12 - x12 * xy23 )/(x12 * y23 - x23 * y12);

		px = (y12 * xy23 - y23 * xy12 ) / (x12 * y23 - x23 * y12) ;

		r = Math.hypot(x1 - px , y1 - py);

		System.out.println(String.format("%.3f %.3f %.3f",px ,py ,r ));
	}
}