Pagini recente » Cod sursa (job #2630976) | Cod sursa (job #63843) | Cod sursa (job #248969) | Cod sursa (job #3151446) | Cod sursa (job #1921914)
#include <cstdio>
#define N 30
using namespace std;
int n, k, v[N], nr, viz[N];
float d[N], s;
int posib(int n)
{
int nf=1;
for(int i=n;i>=2;i--)
nf=nf*i;
return nf;
}
float suma()
{
float s=1.0;
for(int i=1;i<=k;i++)
s=s*d[v[i]];
return s;
}
void bt(int c)
{
if(c==k+1)
{
s+=suma()/nr;
return;
}
for(int i=1;i<=n;i++)
if(v[c-1]<i)
{
v[c]=i;
bt(c+1);
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d\n", &n, &k);
for(int i=1;i<=n;i++)
scanf("%f ", &d[i]);
nr=posib(n);
bt(1);
printf("%.6f", k*s);
return 0;
}