module main; // https://mayokoex.hatenablog.com/entry/2015/05/16/092914 より // 確率 import std; void main() { // 入力 int N = readln.chomp.to!int; auto P = readln.split.to!(double[]).map!((ref n) => n /= 1000).array; auto Q = readln.split.to!(double[]).map!((ref n) => n /= 100).array; // 答えの計算 double ret = 0; alias T = Tuple!(double, int); auto que = iota(0, N).map!(i => T(P[i] * Q[i], i)).array.heapify; foreach (i; 1 .. 1_000_000) { T now = que.front; que.removeFront; ret += now[0] * i; que.insert(T(now[0] * (1 - Q[now[1]]), now[1])); } // 答えの出力 writefln("%.12f", ret); }