Pagini recente » Cod sursa (job #638047) | Cod sursa (job #2165429) | Cod sursa (job #286739) | Cod sursa (job #1776124) | Cod sursa (job #63345)
Cod sursa(job #63345)
#include <stdio.h>
#define fin "dezastru.in"
#define fout "dezastru.out"
#define Nmax 26
long double v[Nmax],ret;
int N,K;
void go(int lv,int last,long double tmp) {
int i;
if ( lv == K + 1 ) {
for (i=K+1;i<=N;++i)
tmp=(long double)tmp/i;
ret = (long double) ret + tmp;
}
else
for (i=last+1;i<=N;++i)
go(lv+1,i,(long double)tmp*v[i]);
}
int main() {
int i;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%d%d",&N,&K);
for (i=1;i<=N;++i)
scanf("%llf",&v[i]);
go(1,0,1.0);
printf("%llf\n",ret);
return 0;
}