样例过,subtask0只有50分,代码如下
#include<bits/stdc++.h>
using namespace std;
typedef double dl;
const int maxn = 1010;
const dl eps = 1e-11;
int t,n,a[maxn],b[maxn],c[maxn];
inline dl f(int i,dl x){
return a[i]*x*x + b[i]*x + c[i];
}
inline dl check(dl x){
dl ans=INT_MIN;
for(int i = 1;i <= n;i++)
ans=max(ans,f(i,x));
return ans;
}
int main(){
cin>>t;
while(t--){
cin>>n;
for(int i = 1;i <= n;i++){
cin>>a[i]>>b[i]>>c[i];
}
dl l = 0,r = 1000;
dl mid1,mid2;
while(r-l > eps){
mid1 = l+(r-l)/3.0;
mid2 = r-(r-l)/3.0;
if(check(mid1) > check(mid2))l=mid1;
else r=mid2;
}
printf("%.4lf\n",check(l));
}
}