Cod sursa(job #184649)

Utilizator firewizardLucian Dobre firewizard Data 24 aprilie 2008 00:17:51
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#define FOR(i,s,d) for(i=(s);i<=(d);++i)
int n,k,i,j,l;
double v[26],m[26][26],f_k=1,f_n=1,fn_k=1,sf;
int main()
{
    freopen ("dezastru.in","r",stdin);
    freopen ("dezastru.out","w",stdout);
    scanf("%d %d",&n,&k);
    FOR(i,1,n)scanf("%lf",&v[i]);
    FOR(i,2,n)f_n*=i;
    FOR(i,2,k)f_k*=i;
    FOR(i,2,n-k)fn_k*=i;
    FOR(i,1,n)m[1][i]=v[i];
    FOR (l,2,k)
        FOR (i,1,n-l+1)
            FOR (j,i+1,n)
                m[l][i]+=m[l-1][j]*v[i];
    FOR (i,1,n-k+1)
        sf+=m[k][i]*f_k*fn_k;
    sf/=f_n;
    printf("%0.6lf",sf);
    return 0;
}