Pagini recente » Cod sursa (job #3033441) | Cod sursa (job #2936772) | Cod sursa (job #2450494) | Cod sursa (job #1086233) | Cod sursa (job #1553443)
#include <cstdio>
#include <iostream>
#include <array>
#include <fstream>
#include <vector>
#include <queue>
#include <utility>
#include <algorithm>
#include <functional>
#include <string>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <bitset>
#include <stack>
#define MOD 1000000007
#define NMAX 30
#define MMAX 100005
#define INF 100000000
#define mp make_pair
using namespace std;
FILE *fin = freopen("dezastru.in", "r", stdin);
FILE *fout = freopen("dezastru.out", "w", stdout);
typedef pair<int, int> pii;
double v[NMAX], DP[NMAX][NMAX], comb[NMAX][NMAX];
int main() {
int n, k, i, j;
scanf("%d%d", &n, &k);
for (i = 1; i <= n; ++i) {
scanf("%lf", &v[i]);
DP[i][0] = 1;
comb[i][1] = i;
}
DP[0][0] = 1;
for (i = 1; i <= k; ++i)
for (j = i; j <= n; ++j)
DP[j][i] = DP[j - 1][i] + v[j] * DP[j - 1][i - 1];
for (i = 2; i <= n; ++i)
for (j = 2; j <= i; ++j)
comb[i][j] = comb[i - 1][j - 1] + comb[i - 1][j];
printf("%.6f", DP[n][k] / comb[n][k]);
return 0;
}