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: Wrong Answer)

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int n = stdIn.nextInt();
		for(int i = 0; i < n; i++) {
			double x1 = stdIn.nextDouble();
			double y1 = stdIn.nextDouble();
			double x2 = stdIn.nextDouble();
			double y2 = stdIn.nextDouble();
			double x3 = stdIn.nextDouble();
			double y3 = stdIn.nextDouble();
			
			double a = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
			double b = Math.sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
			double c = Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
			
			double s = (a+b+c)/2;
			double r = a*b*c / (4*Math.sqrt(s*(s-a)*(s-b)*(s-c)));
			
			double A1=2*(x2-x1);
			double B1=2*(y2-y1);
			double C1=(x1*x1)-(x2*x2)+(y1*y1)-(y2*y2);
			double A2=2*(x3-x1);
			double B2=2*(y3-y1);
			double C2=(x1*x1)-(x3*x3)+(y1*y1)-(y3*y3);
			double X=(B1*C2-B2*C1)/(A1*B2-A2*B1);
			double Y=(C1*A2-C2*A1)/(A1*B2-A2*B1);
			
			X = sr(X);
			Y = sr(Y);
			r = sr(r);
			System.out.printf("%.3f %.3f %.3f",X,Y,r);
		}
	}
	public static double sr(double a) {
		a = a*10000;
		if(a%10 >=  5) {
			a += 10-a%10;
		}
		else {
			a -= a%10;
		}
		int b = (int)a;
		
		return (b/10000.0);
	}
}