#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define D long long #define U unsigned #define SHIKOU 3000000 using namespace std; D n, m,a, b, d, e, x, y, z; D i, j, k; char c,f; string s; struct Prob { double p; double q; double r; bool operator<(const Prob &obj)const { return r < obj.r; } bool operator>(const Prob &obj)const { return r > obj.r; } }; double kitai[SHIKOU]; double ans; int main() { D t; priority_queue p; Prob tmp[1000],tm; cin >> a; for (i = 0; i < a; i++) { cin >> tmp[i].p; tmp[i].p /= 1000.0; } for (i = 0; i < a; i++) { cin >> tmp[i].q; tmp[i].q /= 100.0; } for (i = 0; i < a; i++) tmp[i].r = tmp[i].p * tmp[i].q; for (i = 0; i < a; i++) p.push(tmp[i]); for (i = 0; i < SHIKOU; i++) { tm = p.top(); p.pop(); kitai[i] +=tm.r; tm.p *= 1.0 - tm.q; tm.r = tm.p*tm.q; p.push(tm); } for (i = 0; i < SHIKOU; i++) ans += (double)i*kitai[i]; printf("%.6f\n", ans+1); }