#include #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; int main() { int n; cin >> n; vector a(n), b(n); rep(i, n) cin >> a[i]; rep(i, n) cin >> b[i]; double ac = 1e14, wa = 0; rep(ti, 100) { double wj = (ac+wa)/2; auto ok = [&]{ vector p(n+1); rep(i, n) p[i+1] = p[i] + (a[i]-wj*b[i]); vector lmn(n+1); double now = p[0]; for (int i = 1; i <= n; ++i) { lmn[i] = now; now = min(now, p[i]); } vector rmx(n+1); rmx[n] = p[n]; for (int i = n-1; i >= 1; --i) { rmx[i] = max(rmx[i+1], p[i]); } for (int i = 1; i <= n; ++i) { if (rmx[i] <= lmn[i]+1e-11) { return true; } } return false; }(); (ok ? ac : wa) = wj; } printf("%.10f\n", ac); return 0; }