UVALIVE-5009
三分
1 #include <iostream> 2 using namespace std; 3 #include<string.h> 4 #include<set> 5 #include<stdio.h> 6 #include<math.h> 7 #include<queue> 8 #include<map> 9 #include<algorithm> 10 #include<cstdio> 11 #include<cmath> 12 #include<cstring> 13 #include <cstdio> 14 #include <cstdlib> 15 #include<cstring> 16 int n; 17 struct lll 18 { 19 double a,b,c; 20 }TM[10010]; 21 double qqq(double z) 22 { 23 double max1=TM[0].a*z*z+TM[0].b*z+TM[0].c; 24 for(int i=1;i<n;i++) 25 max1=max(max1,TM[i].a*z*z+TM[i].b*z+TM[i].c); 26 return max1; 27 28 } 29 int main() 30 { 31 int t; 32 cin>>t; 33 while(t--) 34 { 35 cin>>n; 36 for(int i=0;i<n;i++) 37 cin>>TM[i].a>>TM[i].b>>TM[i].c; 38 double tou=0,wei=1000; 39 double min1,min2; 40 for(int i=0;i<1000;i++) 41 { 42 min1=(tou+wei)/2; 43 min2=(min1+wei)/2; 44 if(qqq(min1)<qqq(min2)) 45 wei=min2; 46 else 47 tou=min1; 48 } 49 printf("%.4lf ",qqq((tou+wei)/2)); 50 } 51 return 0; 52 }