Pagini recente » Cod sursa (job #2404498) | Cod sursa (job #2480845) | Cod sursa (job #385632) | Cod sursa (job #1066849) | Cod sursa (job #1680217)
#include <iostream>
#include <cstdio>
using namespace std;
const int N_max = 27;
double p[N_max];
int sol[N_max];
double P;
int NR;
int N, K;
void write()
{
double pc = 1;
for(int i = 1; i <= K; i++) pc = pc * p[ sol[i] ];
P += pc;
}
void bkt(int p)
{
if(p - 1 == K)
{
NR++;
write();
}
else
for(int i = 1 + sol[p - 1]; i <= N - K + p; i++)
{
sol[p] = i;
bkt(p + 1);
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &N, &K);
for(int i = 1; i <= N; i++) scanf("%lf", &p[i]);
bkt(1);
printf("%.6lf", P / NR);
return 0;
}