Pagini recente » Rating Stefan Dore (stefan_dore_) | Cod sursa (job #3283189) | Arhiva educationala | Cod sursa (job #233157) | Cod sursa (job #1504585)
#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] = 1;
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;
}