Cod sursa(job #43564)

Utilizator cos_minBondane Cosmin cos_min Data 30 martie 2007 11:52:38
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <stdio.h>

#define in "dezastru.in"
#define out "dezastru.out"
#define dim 26

long long a[dim][dim];
int N, K;
double p[dim][dim];
double sir[dim];

int main()
{
    freopen(in,"r",stdin);
    freopen(out,"w",stdout);
    
    scanf("%d%d", &N, &K);
    for ( int i = 1; i <= N; i++ )
        scanf("%lf", &sir[i]);
    
    for ( int i = 0; i <= N; i++ ) a[i][0] = 1;
    
    for ( int i = 1; i <= N; i++ )
    {
        a[i][i] = 1;    
        for ( int j = 1; j < i; j++ )
        {
            a[i][j] = a[i-1][j-1] + a[i-1][j];
        }     
    }   
    
    p[0][1] = 0;
    
    for ( int i = 1; i <= N; i++ ) p[i][1] += p[i-1][1] + sir[i];

    for ( int j = 2; j <= K; j++ )
        for ( int i = 1; i <= N; i++ )
           p[i][j] = p[i-1][j] + p[i-1][j-1]*sir[i];
    
   /* for ( int i = 1; i <= N; i++, printf("\n") )
    {
        for ( int j = 1; j <= K; j++ )
           printf("%lf ", p[i][j]);
    }   */ 
    
    printf("%lf\n", p[N][K]/a[N][K] );
    
}