Cod sursa(job #1481304)
| Utilizator | 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));
}
