Cod sursa(job #1838856)

Utilizator antanaAntonia Boca antana Data 1 ianuarie 2017 22:13:30
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>

#define MAXN 26

using namespace std;

double p[MAXN], a[MAXN][MAXN], ans;
int comb[MAXN][MAXN];

int main()
{
    freopen("dezastru.in", "r", stdin);
    freopen("dezastru.out", "w", stdout);

    int i, n, k, j;

    scanf("%d%d", &n, &k);

    for(i=1; i<=n; ++i)
        scanf("%lf", &p[i]);

    comb[1][1] = 1;
    a[1][1] = p[1];
    comb[1][0] = a[1][0] = 1;

    for(i=2; i<=n; ++i)
    {
       a[i][0] = comb[i][0] = 1;
        for(j=1; j<=k; ++j)
            a[i][j] = a[i-1][j] + p[i]*a[i-1][j-1], comb[i][j] = comb[i-1][j] + comb[i-1][j-1];
    }

    printf("%.6lf", a[n][k] / (1.0*comb[n][k]));

    return 0;
}