#include using namespace std; // k <= sum(a)/sum(b) // k * sum(b) <= sum(a) // k * sum(b) - sum(a) <= 0 int main() { int n; cin >> n; vector a(n), b(n); for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = 0; i < n; ++i) cin >> b[i]; double ok = 0, ng = *max_element(a.begin(), a.end()); for (int _ = 0; _ < 100; _++) { double k = (ok + ng) / 2; vector pmin(n + 1, 0), smin(n + 1, 0); double prefix = 0, suffix = 0; for (int i = 0; i < n; ++i) { prefix += a[i] - b[i] * k; suffix += a[n-i-1] - b[n-i-1] * k; pmin[i+1] = min(pmin[i] , prefix); smin[n-i-1] = min(smin[n-i], suffix); } double x = 1e18; for (int i = 0; i < n; ++i) { x = min(x, prefix - pmin[i] - smin[i+1]); } if (0 <= x) ok = k; else ng = k; } cout << fixed << setprecision(12); cout << ok << endl; }