Cod sursa(job #1260158)

Utilizator VisanCosminVisan Tudor Cosmin VisanCosmin Data 10 noiembrie 2014 22:22:26
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>

using namespace std;

int n,k;
double a[30][30],b[30];
double r;

int main()
{
    FILE *f=fopen("dezastru.in","r");
    fscanf(f,"%d%d",&n,&k);
    for(int i = 1;i<=n;i++)
        fscanf(f,"%lf",&b[i]);

    fclose(f);
    a[0][0]=1;
    for(int i = 1;i<=n;i++)
    {
        a[i][0]=1;
        for(int j = 1;j<=i;j++)
        {
            a[i][j] = a[i-1][j-1]*b[i]+a[i-1][j];
        }
    }
    r=1;
    if(k<n/2)
    {
        for(int i =n-k+1;i<=n;i++)
            r=r*i;
        for(int i = 2;i<=k;i++)
            r=r/i;
    }
    else
    {
        for(int i = k+1;i<=n;i++)
            r=r*i;
        for(int i = 2;i<k;i++)
            r=r/i;
    }


    FILE*g =fopen("dezastru.out","w");
    fprintf(g,"%g",a[n][k]/r);
    fclose(g);



    return 0;
}