Pagini recente » Cod sursa (job #915686) | Borderou de evaluare (job #2912069) | Cod sursa (job #881707) | Cod sursa (job #1760903) | Cod sursa (job #983142)
Cod sursa(job #983142)
#include <cstdio>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
int N, K;
double prob[30];
double sol[30][30];
int main() {
freopen("dezastru.in", "rb", stdin);
freopen("dezastru.out", "wb", stdout);
scanf("%d %d", &N, &K);
for (int i = 1; i <= N; i++) {
scanf("%lf", prob + i);
}
sol[0][0] = 1.0;
for (int i = 1; i <= N; i++) {
sol[i][0] = 1.0;
for (int j = 1; j <= K && j <= i; j++) {
sol[i][j] = sol[i - 1][j] + sol[i - 1][j - 1] * prob[i];
}
}
double rez = sol[N][K];
for (int i = 1; i <= K; i++) {
rez /= (N - i + 1);
rez *= i;
}
printf("%.9f\n", rez);
}