我的代码 RE 50%:
#include <bits/stdc++.h>
using namespace std;
const double inf=2e9;
double a[1001], b[1001], c[1001];
double f(double x, int n){
double maxx = -1e9;
for (int i = 0; i < n; i++)
maxx = max(a[i] * x * x + b[i] * x + c[i], maxx);
return maxx;
}
int main(){
int q;
cin >> q;
for (int k = 1; k <= q; k++){
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i] >> b[i] >> c[i];
double l = 0, r = 1000;
while ((l + 1e-10) < r){
double mid1 = (l + l + r) / 3, mid2 = (l + r + r) / 3;
double v1 = f(l, n);
double v2 = f(mid1, n);
double v3 = f(mid2, n);
double v4 = f(r, n);
if(v1 < v2)
r = mid1;
else if(v4 < v3)
l = mid2;
else if(v1 > v2 && v2 < v3)
r = mid2;
else if(v4 > v3 && v3 < v2)
l = mid1;
else
l = mid1, r = mid2;
}
printf("%.4lf\n",f(l, n));
}
return 0;
}