#include using namespace std; #define rep2(i, m, n) for(int i=int(m); i; using Vld = vector; template istream &operator>>(istream &is, vector &v) { for (auto &e : v) is >> e; return is; } ld log_prob(ld a, ld z) { return log(1-a) - log(1-a*z); } int main() { ll n; cin >> n; Vld p(n), q(n); cin >> p >> q; V x(n); cin >> x; auto fun = [&] (ld y) { ld f = 0; rep(i, n) f += p[i] * exp(log_prob(q[i], y)); return (f <= y); }; ld ok = 1; ld ng = 0; rep(i, 30) { ld md = (ok + ng) / 2; if (fun(md)) ok = md; else ng = md; } ld ans = 0; rep(i, n) ans += x[i] * log_prob(q[i], ok); cout << ans << endl; return 0; }