Pagini recente » Cod sursa (job #167608) | Cod sursa (job #2649801) | Cod sursa (job #915671) | Cod sursa (job #2556634) | Cod sursa (job #1451080)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
#define ll long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define pll pair<ll, ll>
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second
const int nmax = 30;
int n, k, i, j;
double p[nmax];
double dp[nmax][nmax];
double comb[nmax][nmax];
int main() {
fin >> n >> k;
for (i = 1; i <= n; i++)
fin >> p[i];
for (i = 0; i <= n; i++)
dp[i][0] = 1.0;
for (i = 1; i <= n; i++)
for (j = 1; j <= i && j <= k; j++)
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] * p[i];
for (i = 0; i <= n; i++)
comb[i][0] = 1.0;
for (i = 1; i <= n; i++)
for (j = 1; j <= i; j++)
comb[i][j] = comb[i - 1][j] + comb[i - 1][j - 1];
fout << dp[n][k] / comb[n][k];
return 0;
}