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) {
		Scanner s=new Scanner(System.in);
		int n;
		double x1,x2,x3,y1,y2,y3,xp,yp,r,a1,a2,b1,b2,c1,c2,a,b;
		n=s.nextInt();
		for(int i=0;i<n;i++){
			x1=s.nextDouble();
			y1=s.nextDouble();
			x2=s.nextDouble();
			y2=s.nextDouble();
			x3=s.nextDouble();
			y3=s.nextDouble();
			
			a1=2*(x1-x2);//a
			b1=2*(y1-y2);//b
			//c
			c1=(x1*x1)-(x2*x2)+(y1*y1)-(y2*y2);
			a2=2*(x2-x3);//d
			b2=2*(y2-y3);//e
			c2=(x2*x2)-(x3*x3)+(y2*y2)-(y3*y3);
			
			if(c1*b2-b1*c2==0 ||a1*b2-a2*b1==0)xp=0;
			else
			xp=(c1*b2-b1*c2)/(a1*b2-a2*b1);
			if(c1*a2-c2*a1==0 ||a2*b1-a1*b2==0)yp=0;
			else
			yp=(c1*a2-c2*a1)/(a2*b1-a1*b2);
			
			a=xp-x1;
			a=a*a;
			b=yp-y1;
			b=b*b;
			r=Math.sqrt(a+b);
			if(r==0)
				r=0;
			System.out.printf("%.3f %.3f %.3f\n",xp,yp,r);
		}//for
	}
}