Cod sursa(job #1481304)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 4 septembrie 2015 10:09:59
Problema Dezastru Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<stdio.h>
int n,k,i,j;
double p[26],a[26],b[26],c[26];
double C(int n,int k) { return n==k||!k?1:C(n-1,k)+C(n-1,k-1); }
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",&p[i]),c[i]=1;
    for(c[0]=i=1;i<=k;i++) {
        for(j=i;j<=n;j++)
            a[j]=b[j-1]+c[j-1]*p[j];
        for(j=i;j<=n;j++)
            c[j]=b[j],b[j]=a[j];
    }
    printf("%.6lf",a[n]/C(n,k));
}