/* -*- coding: utf-8 -*- * * 210.cc: No.210 探し物はどこですか? - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 1000; /* typedef */ typedef pair pdi; /* global variables */ int ps[MAX_N], qs[MAX_N]; /* subroutines */ /* main */ int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> ps[i]; for (int i = 0; i < n; i++) cin >> qs[i]; priority_queue q; for (int i = 0; i < n; i++) q.push(pdi((double)ps[i] * qs[i] / 100000, i)); double esum = 0.0; int k = 1; for (;;) { pdi u = q.top(); q.pop(); double &pq = u.first; int &i = u.second; if (pq < 1e-10) break; esum += k * pq; k++; double pq0 = pq * (100 - qs[i]) / 100; q.push(pdi(pq0, i)); } printf("%.6lf\n", esum); return 0; }