传送门
水题使我快落
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
#include <map>
#include <cstring>
#include <cmath>
using namespace std;
const int N=10050;
int T;
int n;
double a[N],b[N],c[N];
inline int read(){
//好看的快读
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';ch=getchar();}
return x*f;
}
double cal(double x){
double maxx=-2147483647;
for(int i=1;i<=n;i++)maxx=max(maxx,a[i]*x*x+b[i]*x+c[i]);
return maxx;
}
int main(){
T=read();
while(T--){
double minn=2147483647;
n=read();
for(int i=1;i<=n;i++) scanf("%lf%lf%lf",&a[i],&b[i],&c[i]);
double l=0.0000;
double r=1000.0000;
while(l+1e-11<r){
//这里是在判断double类型大小时候常用的一种方法,加上一个极小值,可以减小误差,注意这个值的大小,要足够小,我一开始取1e-6全Wa了嘤嘤嘤
double mid=(l*2+r)/3;
double midr=(l+r*2)/3;
double f2=cal(mid);
double f3=cal(midr);
if(f2>f3)l=mid;
else r=midr;
}
printf("%.4lf\n",cal(l));
}
return 0;
}