Pagini recente » Cod sursa (job #1175996) | Cod sursa (job #3266750) | Cod sursa (job #286847) | Cod sursa (job #2463767) | Cod sursa (job #1773638)
#include <cstdio>
#define NMax 25
#define dab double
dab f[NMax+1];
dab sum;
int C[NMax+1][NMax+1];
int v[NMax+1];
int N,K;
void Precalc()
{
int i,j;
C[1][0] = C[0][0] = 1;
for(i = 1; i <= NMax; ++i)
for(j = 0; j <= i; ++j) C[i][j] = C[i-1][j-1] + C[i-1][j];
}
inline void back(int k, dab temp, int last)
{
if (k == K + 1) sum += temp;
else
{
for (int i = last + 1; i <= N - K + k; i++)
back(k + 1, temp * f[i], i);
}
}
int main(){
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
dab base;
Precalc();
scanf("%d %d",&N,&K);
for(i = 1; i <= N; ++i) scanf("%lf",&f[i]);
base = C[N][K];
back(1, 1 , 0);
printf("%f\n", sum/base );
return 0;
}