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 C (judge verdict: Time Limit Exceeded)

#include <stdio.h>
#include <math.h>

int main(){
double x1,x2,x3,y1,y2,y3;
double a,b,c,d;
double r,i=0,j=0;
int n;
scanf("%d",&n);
for(i=0;i<n;i++){
x1=0;
x2=0;
x3=0;
y1=0;
y2=0;
y3=0;
a=0;
b=0;
c=0;
d=0;
r=0;
scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
i=-100;
while(i<=100){
j=-100;
while(j<=100){
a=(i-x1)*(i-x1)+(j-y1)*(j-y1);
b=(i-x2)*(i-x2)+(j-y2)*(j-y2);
c=(i-x3)*(i-x3)+(j-y3)*(j-y3);
if(a==b&&b==c)break;
j+=0.001;
}
if(a==b&&b==c)break;
i+=0.001;
}
a=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
a=sqrt(a);
b=(x2-x3)*(x2-x3)+(y2-y3)*(y2-y3);
b=sqrt(b);
c=(x3-x1)*(x3-x1)+(y3-y1)*(y3-y1);
c=sqrt(c);
d=1-((b*b+c*c-a*a)/(2*b*c))*((b*b+c*c-a*a)/(2*b*c));
d=sqrt(d);
r=a/(2*d);
printf("%4.3f %4.3f %4.3f",i,j,r);
}
return 0;
}