1 solutions

  • 1
    @ 2024-4-14 20:25:39
    #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