rt.
精度是 1e-10 会 wa,1e-11 会 T。
代码:
#include<bits/stdc++.h>
using namespace std;
int t,i,n;
double a[10009],b[10009],c[10009];
double calc(int i,double x)
{
return a[i]*x*x+b[i]*x+c[i];
}
double check(double x)
{
double ret=-1e9;
for(i=1;i<=n;i++) ret=max(ret,calc(i,x));
return ret;
}
const double eps=1e-11;
int main()
{
cout<<fixed<<setprecision(4);
cin>>t;
while(t--)
{
cin>>n;
for(i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
double l=0,r=1e9,ans=0;
while(r-l>eps)
{
double mid1=l+(r-l)/3.000,mid2=r-(r-l)/3.000;
if(check(mid1)<=check(mid2)) r=mid2-eps,ans=check(mid1);
else l=mid1+eps;
}
cout<<ans<<endl;
}
return 0;
}