module main; // https://kmjp.hatenablog.jp/entry/2015/05/15/1130 より // 確率 import std; void main() { // 入力 int N = readln.chomp.to!int; auto P = readln.split.to!(int[]); auto Q = readln.split.to!(int[]); // 答えの計算 double ret = 0; alias T = Tuple!(double, int); auto pq = redBlackTree!("a > b", T)(); foreach (i; 0 .. N) pq.insert(T(P[i] * Q[i] / 100_000.0, i)); foreach (i; 0 .. 1_000_000) if (!pq.empty) { T r = pq.front; pq.removeFront; ret += (i + 1) * r[0]; pq.insert(T(r[0] * (1 - Q[r[1]] / 100.0), r[1])); } // 答えの出力 writefln("%.12f", ret); }