Pagini recente » Cod sursa (job #75727) | Cod sursa (job #1943938) | Cod sursa (job #1525694) | Cod sursa (job #1562138) | Cod sursa (job #296404)
Cod sursa(job #296404)
#include <cstdio>
#define maxN 32
double P[maxN], C[maxN][maxN];
int N, K, Nr[maxN][maxN];
int main () {
double Sum = 1;
int i, j;
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d%d", &N, &K);
for (i = 1; i <= N; ++ i) {
scanf("%lf", &P[i]);
Sum = Sum * P[i];
C[i][0] = 1.00;
Nr[i][0] = 1;
}
if (N == K) {
printf("%.6lf\n", Sum);
return 0;
}
C[0][0] = 1.00; Nr[0][0] = 1;
for (i = 1; i <= N; ++ i)
for (j = 1; j <= i; ++ j) {
Nr[i][j] = Nr[i - 1][j] + Nr[i - 1][j - 1];
C[i][j] = C[i - 1][j] + C[i - 1][j - 1] * P[i];
}
printf("%.6lf\n", C[N][K] / (Nr[N][K] * 1.00));
}