Cod sursa(job #358872)
Utilizator | Prodan Diana prdiana | Data | 24 octombrie 2009 19:51:07 |
---|---|---|---|
Problema | Dezastru | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <stdio.h>
#define MAXN 32
double p[MAXN],sum;
int n,k,c;
void backrec(int nivel,int st,double val)
{
int i;
if (nivel > k)
{
sum+=val;
c++;
}
else
{
for (i=st;i<=n;i++)
{
backrec(nivel+1,i+1,val*p[i]);
}
}
}
int main()
{
int i;
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]);
}
backrec(1,1,1);
printf("%.06lf",sum/c);
return 0;
}