Cod sursa(job #491663)
| Utilizator | Data | 11 octombrie 2010 22:05:31 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <stdio.h>
int n,k,i,c;
double p[26],s;
void back(int x,int a,double pos)
{
if(x==k)
{
s+=pos;
++c;
return;
}
int i;
for(i=a+1;i<=n+x-k+1;i++) back(x+1,i,pos*p[i]);
}
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]);
for(i=1;i<=n-k+1;i++) back(1,i,p[i]);
s=s/c;
printf("%lf",s);
return 0;
}
