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) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);
		int i;
		int n = scanner.nextInt();
		for (i = 0; i < n; i++) {
			double x1 =  scanner.nextDouble();
			double y1 =  scanner.nextDouble();
			double x2 =  scanner.nextDouble();
			double y2 =  scanner.nextDouble();
			double x3 =  scanner.nextDouble();
			double y3 =  scanner.nextDouble();

			double X12 = x1 - x2;
			double Y12 = y1 - y2;
			double X32 = x3 - x2;
			double Y32 = y3 - y2;

			double px = (Y32*(X12*(x1+x2)+Y12*(y1+y2))-Y12*(X32*(x3+x2)+Y32*(y3+y2)))/(2*X12*Y32-2*Y12*X32);
	        double py = (-X32*(X12*(x1+x2)+Y12*(y1+y2))+X12*(X32*(x3+x2)+Y32*(y3+y2)))/(2*X12*Y32-2*Y12*X32);
			double r = Math.sqrt(Math.pow(x1 - px, 2) + Math.pow(y1 - py, 2) );

			System.out.printf("%.3f %.3f %.3f\n", px, py, r);

		}
		scanner.close();
	}

}