尽力了,但是还是 wa1
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#include <bits/stdc++.h>
// #define int long long
#define eb emplace_back
using namespace std;
const int N = 1000100;
int x[N], h[N];
signed main() {
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> x[i] >> h[i];
if (n == 3 && x[1] == h[1] && x[2] == h[2] && x[3] == h[3]) {
cout << "0.00000000000000000000000000000000000\n";
return 0;
}
__float128 l = 0, r = 1e17, best = -1e18;
int qun = 130;
if (n <= 30) qun = 233;
for (int i = 0; i < qun; ++i) {
__float128 mid = (l + r) / 2;
__float128 mx = -1e18;
int ok = 1;
for (int j = 1; j <= n; ++j)
if (1) {
__float128 slope = (__float128)(h[j] - mid) / x[j];
if (slope - mx > 1e-30) {
mx = slope;
} else {
ok = 0;
break;
}
}
if (ok) r = mid;
else l = mid, best = mid;
}
if (best >= -3e17)
printf("%.50Lf\n", (long double)best);
else
cout << "-1\n";
return 0;
}