Cod sursa(job #975879)

Utilizator Athena99Anghel Anca Athena99 Data 21 iulie 2013 22:33:25
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cassert>
#include <cstdio>

int n=0,k=0,i=0,j=0,dif=0;
float m[30][30],v[30],c=1;

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

    assert(scanf("%d%d",&n,&k));
    for (i=1; i<=n; ++i)
        assert(scanf("%f",&v[i]));

    for (i=0; i<26; ++i)
        m[i][0]=1;
    for (i=1; i<26; ++i)
        for (j=1; j<26; ++j)
            m[i][j]=m[i-1][j]+m[i-1][j-1]*v[i];

    dif=n-k;
    c=n;
    for(i=k+1; i<n; ++i,--dif)
            c=c*(i/dif);

    printf("%f\n",m[n][k]/c);
    return 0;
}