Pagini recente » Cod sursa (job #2591873) | Cod sursa (job #1334942) | Cod sursa (job #1314106) | Cod sursa (job #3252948) | Cod sursa (job #63216)
Cod sursa(job #63216)
#include <cstdio>
#include <bitset>
using namespace std;
double s[32], q, fact1,fact2;
void comb(int nr,int i,int n,int k,double tmp)
{
if(i<k)
for(int j=nr+1;j<=n;++j) comb(j,i+1,n,k,tmp*s[j]);
else
q += tmp;
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int n,k, i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%lf",&s[i]);
fact1 = fact2 = 1;
for(i=2;i<=k;++i)
fact1*=(double)i;
for(i=2;i<=n;++i)
fact2*=(double)i;
fact1 /= fact2;
for(i=1;i<=n;++i)
comb(i,1,n,k,s[i]);
printf("%.6f",(q*fact1)-0.0000005);
return 0;
}