Cod sursa(job #732618)

Utilizator suzanicaSuzanica Mihu suzanica Data 10 aprilie 2012 18:48:12
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

int n, k;
double a[30][30];
int c[30][30];
double p[30];
int i, j;

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]);
    
    for ( i = 0; i <= n; i++ )
        a[i][0] = 1;
    a[1][1] = p[1];
    for ( i = 2; i <= n; i++ )
        for ( j = 1; j <= i; j++ )
            a[i][j] = a[i-1][j] + a[i-1][j-1]*p[i];
    
    for ( i = 0; i <= n; i++ )
        c[i][0] = 1;
    for ( i = 1; i <= n; i++ )
        for ( j = 1; j <= i; j++ )
            c[i][j] = c[i-1][j] + c[i-1][j-1];
    
    printf("%.6lf\n", a[n][k]/(double)(c[n][k]));
    
    return 0;
}