4404 - 提高:二分与三分:曲线(三分)
明明做作业的时候遇到了n个二次函数Si(x)=ax22+bx+c,他突发奇想设计了一个新的函数F(x)=max(Si(x)), i=1,2...n。
明明现在想求这个函数在[0,10000]的最小值,要求精确到小数点后四位四舍五入。
输入
输入包含T 组数据 (T<10) ,每组第一行一个整数 n(n≤10000) ,之后n行,每行3个整数a(0≤a≤100),b(|b|≤5000),c(|c|≤5000) ,用来表示每个二次函数的3个系数,注意二次函数有可能退化成一次。
输出
每组数据一个输出,表示新函数F(x)的在区间[0,10000]上的最小值。精确到小数点后四位,四舍五入。
样例
输入
2
1
2 0 0
2
2 0 0
2 -4 2
输出
0.0000
0.5000
提示
【数据范围】
T<10,n≤10000,0≤a≤100,|b|≤5000,|c|≤5000;
前50%数据,n≤100。
——————————————————————————————————————————
代码:
#include<bits/stdc++.h>
using namespace std;
int t,n,a[10002],b[10002],c[10002];
double check(double mid)
{
double maxx=-0x3f3f3f3f;
for(int i=1;i