Cod sursa(job #1496863)

Utilizator bogdan.balanBogdan Balan bogdan.balan Data 5 octombrie 2015 18:12:45
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define MAX 30

int n, k, i, j;
double p[MAX], a[MAX][MAX], comb[MAX][MAX];

int main(){
    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]);
        a[i][0] = 1;
        comb[i][1] = i;
    }
    a[0][0] = 1;

    for(i = 1; i <= k; i++)
        for(j = i; j <= n; j++)
            a[j][i] = a[j - 1][i] + a[j - 1][i - 1] * p[j];

    for(i = 2; i <= n; i++)
        for(j = 2; j <= i; j++)
            comb[i][j] = comb[i - 1][j - 1] + comb[i - 1][j];

    printf("%lf", a[n][k] / comb[n][k]);
}