Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;typedef long long ll;#ifndef ONLINE_JUDGE#define dbg(x...) do{cout << "\033[33;1m" << #x << "->" ; err(x);} while (0)void err(){cout << "\033[39;0m" << endl;}template<template<typename...> class T, typename t, typename... A>void err(T<t> a, A... x){for (auto v: a) cout << v << ' '; err(x...);}template<typename T, typename... A>void err(T a, A... x){cout << a << ' '; err(x...);}#else#define dbg(...)#endif#define inf 1ll << 50const int N = 1e3 + 5;double dp[2][N];int main(){int n, m;scanf("%d%d", &n, &m);dp[0][0] = 1;for (int i = 1; i <= n; i++){double p;scanf("%lf", &p);dp[i & 1][0] = dp[(i - 1) & 1][0] * (1 - p);for (int j = 1; j <= min(i, m); j++)dp[i & 1][j] = dp[(i - 1) & 1][j] * (1 - p) + dp[(i - 1) & 1][j - 1] * p;}printf("%.6f\n", dp[n & 1][m]);return 0;