#include #include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = uint32_t; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { int n; cin >> n; vector ps(n), qs(n); for (int i = 0; i < n; ++i) cin >> ps[i], ps[i] /= 1000; for (int i = 0; i < n; ++i) cin >> qs[i], qs[i] /= 100; priority_queue> p; for (int i = 0; i < n; ++i) { p.emplace(ps[i]*qs[i], i); } double ans = 0; for (int i = 0; i < n*1000; ++i) { double x; int cur; tie(x, cur) = p.top(); p.pop(); ans += (i+1)*x; p.emplace(x*(1-qs[cur]), cur); } printf("%.10lf\n", ans); return 0; }