#include #include #include int main() { int i, N, A[100001]; long double p[100001], q[100001]; scanf("%d", &N); for (i = 1; i <= N; i++) scanf("%Lf", &(p[i])); for (i = 1; i <= N; i++) scanf("%Lf", &(q[i])); for (i = 1; i <= N; i++) scanf("%d", &(A[i])); int flag = 1; long double x[100001], y[100001], sum, tmp; for (i = 1; i <= N; i++) x[i] = 0.5; while (flag == 1) { flag = 0; for (i = 1, sum = 0.0; i <= N; i++) sum += p[i] * x[i]; for (i = 1; i <= N; i++) { tmp = 1.0 - q[i] * (sum - p[i] * x[i]); y[i] = (tmp - sqrtl(tmp * tmp - 4 * q[i] * (1.0 - q[i]) * p[i])) / (2.0 * q[i] * p[i]); if (fabsl(y[i] - x[i]) > 1e-10) flag = 1; } for (i = 1; i <= N; i++) x[i] = (x[i] + y[i]) / 2.0; } long double ans = 0.0; for (i = 1; i <= N; i++) ans += logl(x[i]) * A[i]; printf("%.7Lf\n", ans); fflush(stdout); return 0; }