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.util.Scanner;

public class Main {

	// 解くだけゲー
	void run() {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();

		for (int i = 0; i < n; 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();

			double a = (x1 * x1) - (x2 * x2);
			double b = 2 * (x2 - x1);
			double c = (y1 * y1) - (y2 * y2);
			double d = 2 * (y2 - y1);

			double e = (x1 * x1) - (x3 * x3);
			double f = 2 * (x3 - x1);
			double g = (y1 * y1) - (y3 * y3);
			double h = 2 * (y3 - y1);

			// 円の中心座標cx,cy
			double cx = (d * (g + e) - h * (a + c)) / (b * h - (d * f));
			double cy = (b * (g + e) - f * (a + c)) / (d * f - (b * h));

			// 円の半径r
			double r = Math.sqrt(((x1 - cx) * (x1 - cx)) + ((y1 - cy) * (y1 - cy)));

			cx =roundOff(cx);
			cy =roundOff(cy);
			r =roundOff(r);

			System.out.printf("%.3f %.3f %.3f\n", cx, cy, r);

		}

		sc.close();

	}

	double roundOff(double a) {

		double b = a * 1000;

		double c = b % 10;

		//
		if (c == 0) {
			return a;
		}

		// 四捨五入
		if (c >= 5) {
			b += 10 - c;
		} else {
			b -= c;
		}

		return b / 1000;
	}

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

}