import sys def solve(n, t, p): dp = [0.0] * (n + 1) dp[0] = 1.0 for prob in p: for j in range(n, 0, -1): dp[j] = dp[j] * (1 - prob) + dp[j - 1] * prob result = sum(dp[t:]) print(f"{result:.20f}") if __name__ == "__main__": n, t = map(int, sys.stdin.readline().split()) p = [float(sys.stdin.readline()) for _ in range(n)] solve(n, t, p)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import sys def solve(n, t, p): dp = [0.0] * (n + 1) dp[0] = 1.0 for prob in p: for j in range(n, 0, -1): dp[j] = dp[j] * (1 - prob) + dp[j - 1] * prob result = sum(dp[t:]) print(f"{result:.20f}") if __name__ == "__main__": n, t = map(int, sys.stdin.readline().split()) p = [float(sys.stdin.readline()) for _ in range(n)] solve(n, t, p) |