Pagini recente » Cod sursa (job #2604490) | Cod sursa (job #370007) | Cod sursa (job #2035036) | Cod sursa (job #328354) | Cod sursa (job #63371)
Cod sursa(job #63371)
#include <stdio.h>
#define fin "dezastru.in"
#define fout "dezastru.out"
#define Nmax 26
double v[Nmax],ret=0,aux;
int N,K;
inline void go(int lv,int last,double tmp) {
int i;
if ( lv == K + 1 )
ret = (double) ( ret + tmp );
else
for (i=last+1;i<=N;++i)
if (N-i>=K-lv)
go(lv+1,i,(double)( tmp * v[i] ));
}
int main() {
int i,j;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%d%d",&N,&K);
for (i=1;i<=N;++i)
scanf("%lf",&v[i]);
go(1,0,1.0);
for (j=1,i=K+1;i<=N;++i,++j)
ret = ret * j / i;
printf("%.6lf\n",ret);
return 0;
}