Pagini recente » Cod sursa (job #1005682) | Cod sursa (job #2252512) | Cod sursa (job #159003) | Cod sursa (job #1943326) | Cod sursa (job #668617)
Cod sursa(job #668617)
# include <cstdio>
const char *FIN = "dezastru.in", *FOU = "dezastru.out";
double P[30], A[30][30];
int N, K ;
double calc (void) {
double comb = 1;
for (int i = K + 1; i <= N; comb *= i++);
for (int i = 2; i <= N - K; comb /= i++);
return comb;
}
int main (void) {
freopen (FIN, "r", stdin);
scanf ("%d %d", &N, &K);
for (int i = 1; i <= N; ++i)
scanf ("%lf", P + i), A[i][0] = 1.0;
A[0][0] = 1.0;
for (int i = 1; i <= N; ++i)
for (int j = 1; j <= i && j <= K; ++j)
A[i][j] = A[i - 1][j] + A[i - 1][j - 1] * P[i];
fprintf (fopen (FOU, "w"), "%.6lf", A[N][K] / calc ());
}