Pagini recente » Cod sursa (job #2747714) | Cod sursa (job #587039) | Cod sursa (job #2326580) | Cod sursa (job #247952) | Cod sursa (job #304985)
Cod sursa(job #304985)
#include<stdio.h>
int n,k,j,l,st[26];
long long num=1;
float s,pr,p[26];
void numar()
{
int i;
for(i=1;i<=k;++i)
num=num*(n-k+i);
}
int succesor()
{
if(st[j]<n)
{
st[j]++;
return 1;
}
return 0;
}
void solve()
{
int i;
pr=1;
for(i=1;i<=k;++i)
pr=pr*p[st[i]];
s+=pr;
}
void backt()
{
int as;
j=1;
while(j>0)
{
as=succesor();
if(as)
if(j==k)
{solve();}
else
{++j;
st[j]=st[j-1]+1;
solve();
}
else
--j;
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&n,&k);
int i;
pr=1;
for(i=1;i<=n;++i)
{
scanf("%f",&p[i]);
if(i<=k)
pr=pr*p[i];
}
if(n==k)
printf("%.6f\n",pr);
else
{
backt();
}
numar();
num=num/2;
s=s/num;
printf("%.6f\n",s);
return 0;
}