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.math.BigDecimal;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		
		int inputNum = sc.nextInt();
		
		for(int i = 0;i < inputNum;i++) {

		double x1 = sc.nextDouble();
		double y1 = sc.nextDouble();
		double x2 = sc.nextDouble();
		double y2 = sc.nextDouble();
		double x3 = sc.nextDouble();
		double y3 = sc.nextDouble();
		
		calc(x1,y1,x2,y2,x3,y3);
		}

	}

	public static void calc(double x1, double y1, double x2, double y2,
			double x3, double y3) {
		double a1 = (x2 - x1) *2;
		double b1 = (y2 - y1) *2;
		double c1 = x1 * x1 - x2 * x2 + y1 * y1 - y2 * y2;
		double a2 = (x3 - x1) *2;
		double b2 = (y3 - y1) *2;
		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);
		
		double a= x - x1;
		double b = y -y1;
		
		double en = Math.sqrt((a * a) + (b * b));
		
		BigDecimal enn = new BigDecimal(en);
		
		BigDecimal solutionX = enn.setScale(3, BigDecimal.ROUND_HALF_UP);
		System.out.printf("%.3f %.3f %.3f\n",x,y,solutionX);
	}

}