记录编号 319429 评测结果 AAAAAAAAAA
题目名称 [UVa 1476] 误差曲线 最终得分 100
用户昵称 GravatarSOBER GOOD BOY 是否通过 通过
代码语言 C++ 运行时间 1.574 s
提交时间 2016-10-10 17:37:21 内存使用 0.43 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

int T,A,B,C,N;

int a[10010],b[10010],c[10010];

double MAX(double a,double b)
{
    if(a>b)return a;
    else return b;
}

double MIN(double a,double b)
{
    if(a<b)return a;
    else return b;
}

double get(double x,int i)
{
    return (a[i]*x*x+b[i]*x+c[i]);
}
double Get(double x)
{
    double ha=-1e50;
    for(int i=1;i<=N;i++)
    {
        ha=MAX(ha,get(x,i));
    }
    return ha;
}
double CALC()
{
    double l=0.0,r=1000.0;
    double ans1=0,ans2=0;
    while(r-l>=1e-9)
    {
    
     double mid=(l+r)/2.0,mm=(mid+r)/2.0;
      ans1=Get(mid),ans2=Get(mm);
      if(ans1<ans2)r=mm;
      else l=mid;
    } 
    return Get(l);
}

int main()
{
    freopen("errorcurves.in","r",stdin);
    freopen("errorcurves.out","w",stdout);
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&N);
        for(int i=1;i<=N;i++)
        {
            scanf("%d%d%d",&a[i],&b[i],&c[i]);          
        }
        printf("%.2lf\n",CALC());
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}