Pagini recente » Cod sursa (job #1526) | Cod sursa (job #2549567) | Cod sursa (job #2045038) | Istoria paginii preoni-2008/runda-1 | Cod sursa (job #1504584)
#include <stdio.h>
#define NMAX 26
int N, k;
float p[NMAX];
int Comb[NMAX][NMAX];
float partialP[NMAX][NMAX];
void _read() {
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &N, &k);
for(register int i = 1; i <= N; ++i)
scanf("%f", &p[i]);
}
void _solve() {
partialP[0][0] = Comb[0][0] = 1;
for(register int i = 1; i <= N; ++i) {
partialP[i][0] = Comb[i][0] = i;
for(register int j = 1; j <= k; ++j) {
Comb[i][j] = Comb[i-1][j] + Comb[i-1][j-1];
partialP[i][j] = partialP[i-1][j] + partialP[i-1][j-1] * p[i];
}
}
}
void _write() {
printf("%lf", partialP[N][k] / Comb[N][k]);
}
int main(void) {
_read();
_solve();
_write();
return 0;
}