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

class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=0;i<n;i++){
double x1,y1,x2,y2,x3,y3;
x1=sc.nextDouble();
y1=sc.nextDouble();
x2=sc.nextDouble();
y2=sc.nextDouble();
x3=sc.nextDouble();
y3=sc.nextDouble();
double a=(x1*x1-x2*x2)*(y2-y3)-(x2*x2-x3*x3)-(y1-y2)*(y2-y3)*(y3-y1);
double b=2*((x1-x2)*(y2-y3)-(x2-x3)*(y1-y2));
double px=a/b;
double py;
if(y2!=y3){
py=(px-(x2+x3)/2)*(x3-x2)/(y2-y3)+(y2+y3)/2;
}
else{
py=(px-(x2+x1)/2)*(x1-x2)/(y2-y1)+(y2+y1)/2;
}
double r=Math.hypot(px-x1,py-y1);
BigDecimal x=new BigDecimal(px);
BigDecimal y=new BigDecimal(py);
BigDecimal z=new BigDecimal(r);
x=x.setScale(3,BigDecimal.ROUND_HALF_UP);
y=y.setScale(3,BigDecimal.ROUND_HALF_UP);
z=z.setScale(3,BigDecimal.ROUND_HALF_UP);
System.out.println(x.doubleValue()+" "+y.doubleValue()+" "+z.doubleValue());
}
}
}