#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<vector>
#include<string.h>
#include<map>
#include<cmath>
#include<queue>
#define ll long long
#define INF 0x7fffffff
#define MAX 0x3f3f3f3f
#define maxn 100005
#define mem(a) memset(a,0,sizeof(a))
#define ull unsigned long long
using namespace std;
int n;
struct node
{
int u,v,w;
}dd[10005];
double qumax(double x)
{
double maxx=-MAX;
for(int i=0;i<n;i++)
maxx=max(maxx,dd[i].u*x*x+dd[i].v*x+dd[i].w);
return maxx;
}
int main()
{
int T,i;
double l,r,mid1,mid2;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d%d%d",&dd[i].u,&dd[i].v,&dd[i].w);
l=0;r=1000;//x的范围
while(r-l>1e-12)
{
mid1=l+(r-l)/3;
mid2=r-(r-l)/3;
if(qumax(mid1)<qumax(mid2))
r=mid2;//最后取si(x)最小的mid值
else
l=mid1;
}
printf("%.4f\n",qumax(l));
}
return 0;
}
09-30
298
09-16
09-16