#include <bits/stdc++.h>
using namespace std;
#define down 0.985
int lrj,n;
struct{
double a,b,c;
double operator[](double x)
{
return a*x*x+b*x+c;
}
}a[10003];
double ans,sx;
inline double S(double x)
{
double s=-1e145;
for(int i=1;i<=n;i++)
{
s=max(s,a[i][x]);
}
return s;
}
inline void SA()
{
double t=3000,nx;
do{
nx=sx+((rand()<<1)-RAND_MAX)*t;
double s=S(nx);
if(ans>s)
{
ans=s;
sx=nx;
}
else
{
if(exp((s-ans)/t)*RAND_MAX<=rand())
{
sx=nx;
}
}
t*=down;
}while(t>1e-10);
}
signed main()
{
srand(time(0));
cin>>lrj;
while(lrj--)
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].a>>a[i].b>>a[i].c;
}
sx=114.514;
ans=S(sx);
SA();
printf("%.4lf\n",ans);
}
return 0;
}