#include using namespace std; #define rep2(i, m, n) for(int i=int(m); i; using Vld = vector; // struct fast_ios { fast_ios(){ cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(20); }; } fast_ios_; template istream &operator>>(istream &is, vector &v) { for (auto &e : v) is >> e; return is; } template ostream &operator<<(ostream &os, const vector &v) { for (auto &e : v) os << e << " "; return os; } const ld EPS = 1e-5; 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 z) { ld f = 0; rep(i, n) f += p[i] * exp(log_prob(q[i], z)); return (z < f); }; ld ok = 0; ld ng = 1; while (abs(ok - ng) > EPS) { ld md = (ok + ng) / 2; if (fun(md)) ok = md; else ng = md; // cout << md << endl; } ld ans = 0; rep(i, n) ans += x[i] * log_prob(q[i], ok); cout << ans << endl; return 0; }