Pagini recente » Borderou de evaluare (job #2538343) | Cod sursa (job #3352378) | Cod sursa (job #430049) | Cod sursa (job #246957) | Cod sursa (job #1744748)
#include <iostream>
#include <cstdio>
using namespace std;
int K,N,sol[30],nr;
double v[30];
double sum;
void Read()
{
scanf("%d%d",&N,&K);
for(int i=1; i<=N; i++)
scanf("%lf",&v[i]);
}
void solve()
{
double p=1;
for(int i=1; i<=K; i++)
p*=v[sol[i]];
sum+=p;
nr++;
}
void BK(int z)
{
if(z==K+1)
{
solve();
return;
}
for(int v=sol[z-1]+1; v<=N-K+z; ++v)
{
sol[z]=v;
BK(z+1);
}
}
void Write()
{
printf("%lf",sum/nr);
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
Read();
BK(1);
Write();
return 0;
}