1 solutions
-
1
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int T,n; double l,r,mid1,mid2; double a[10001],b[10001],c[10001]; double f(double aa,double bb,double cc,double x){ return x*x*aa+x*bb+cc; } double F(double x){ double bns=-0x3f3f3f3f; for(int i=1;i<=n;i++) bns=max(bns,f(a[i],b[i],c[i],x)); return bns; } int main(){ cin>>T; while(T--){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i]; l=0.00;r=1000.00; while(r-l>=0.0000000001){ mid1=(2.0*l+r)/3.0; mid2=(l+2.0*r)/3.0; if(F(mid1)>F(mid2))l=mid1; else r=mid2; } printf("%.4lf\n",F(l)); } }
- 1
Information
- ID
- 1062
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- 8
- Tags
- # Submissions
- 54
- Accepted
- 9
- Uploaded By