pythondef solve(N, probs):
m = [0.0] * (N + 1)
m[0] = 1.0
for i in range(N):
n = [0.0] * (N + 1)
for j in range(N):
n[j + 1] += m[j] * probs[i]
for j in range(N + 1):
n[j] += m[j] * (1 - probs[i])
m = n
return sum(m[N // 2 + 1:])