Cod sursa(job #39396)
| Utilizator | Data | 26 martie 2007 18:15:33 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define nmax 32
int n,k,i,j,l;
double p[nmax],a[nmax][nmax],sol;
int nr[nmax][nmax],nn;
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]);
memset(a,0,sizeof(a));
a[0][0]=nr[0][0]=1;
for (i=1;i<=k;i++)
for (j=1;j<=n;j++)
for (l=0;l<j;l++)
nr[i][j]+=nr[i-1][l],a[i][j]+=a[i-1][l]*p[j];
for (i=1;i<=n;i++)
sol+=a[k][i],nn+=nr[k][i];
printf("%lf\n",sol/nn);
return 0;
}
