new file: P1883.cpp
This commit is contained in:
1 parent
a4c825835c
commit
ead5775a4b
1 file changed
+51
@@ -0,0 +1,51 @@
|
||||
#include <bits/stdc++.h>
|
||||
#define int long long
|
||||
using namespace std;
|
||||
int t;
|
||||
int n;
|
||||
struct node
|
||||
{
|
||||
int a, b, c;
|
||||
} a[20005];
|
||||
long double getmax(long double now)
|
||||
{
|
||||
long double ans = INT_MIN;
|
||||
for (int i = 1; i <= n; ++i)
|
||||
{
|
||||
ans = max(ans, a[i].a * now * now + a[i].b * now + a[i].c);
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
signed main()
|
||||
{
|
||||
scanf("%lld", &t);
|
||||
while (t--)
|
||||
{
|
||||
scanf("%lld", &n);
|
||||
for (int i = 1; i <= n; ++i)
|
||||
{
|
||||
scanf("%lld%lld%lld", &a[i].a, &a[i].b, &a[i].c);
|
||||
}
|
||||
long double l = 0, r = 1000;
|
||||
for (int i = 1; i <= 1000 && l <= r; i++)
|
||||
{
|
||||
long double lmid = l + (r - l) / 3, rmid = l + 2 * (r - l) / 3;
|
||||
long double lans = getmax(lmid), rans = getmax(rmid);
|
||||
if (lans > rans)
|
||||
{
|
||||
l = lmid;
|
||||
|
||||
}
|
||||
else if (lans < rans)
|
||||
{
|
||||
r = rmid;
|
||||
}
|
||||
else
|
||||
{
|
||||
l = lmid, r = rmid;
|
||||
}
|
||||
}
|
||||
printf("%.4Lf\n", (long double)(getmax(r)));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user