Cod sursa(job #59185)

Utilizator mariusdrgdragus marius mariusdrg Data 8 mai 2007 16:10:04
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>

const int maxn = 100;

double s[maxn];
int n;
int k;
int i;
int j;
int comb[maxn][maxn];
double a[maxn][maxn];


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",&s[i]);
        }
        comb[0][0] = 1;
        for(i = 1;i <= n; ++i)
        {
                for(j = 0;j <= n; ++j)
                {
                        comb[i][j] = comb[i - 1][j];
                        if  (j > 0)  comb[i][j] += comb[i - 1][j - 1];
                }
        }

        a[0][0] = 1;
        a[1][0] = 1;
        for(i = 1;i <= n; ++i)
        {
                for(j = 1;j <= i; ++j)
                {
                        a[i][j] = a[i - 1][j];
                        a[i][j] += a[i - 1][j - 1] * s[i];
                }
        }
        printf("%lf",a[n][k] / comb[n][k]);
        return 0;
}