Cod sursa(job #631126)
Utilizator | Data | 7 noiembrie 2011 01:03:37 | |
---|---|---|---|
Problema | Dezastru | Scor | 20 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <stdio.h>
char n,a[30],k,i;
float p,b[30];
int c=1;
void comb (int x,int m,double p1) {
int i;
if (x==k) {
p+=p1;
return;
}
for (i=m; i<=n-k+x+1; i++) comb (x+1,i+1,p1*b[i-1]);
}
int main () {
freopen ("dezastru.in","r",stdin);
freopen ("dezastru.out","w",stdout);
scanf ("%d%d",&n,&k);
for (i=0; i<n; i++) scanf ("%f",b+i);
for (i=n-k+1; i<=n; i++) c*=i;
//printf ("%d\n",c);
comb (0,1,1);
printf ("%.6f\n",2*p/c);
return 0;
}