Pagini recente » Cod sursa (job #2311156) | Cod sursa (job #598205) | Cod sursa (job #1425704) | Cod sursa (job #419476) | Cod sursa (job #43559)
Cod sursa(job #43559)
#include <stdio.h>
#define maxn 30
#define db double
int n,m;
db p[maxn];
db sol,x,fact;
int count(int x)
{
int rez=0,i;
for (i=0;i<n;i++)
if ((x&(1<<i))!=0) rez++;
return rez;
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d ",&n,&m);
int i,j;
for (i=0;i<n;i++) scanf("%lf ",&p[i]);
for (i=0;i<1<<n;i++)
if (count(i)==m)
{
x=1;
for (j=0;j<n;j++)
if ((i&(1<<j))!=0) x*=p[j];
sol+=x;
}
for (i=1;i<=m;i++) sol*=i;
for (i=1;i<=n-m;i++) sol*=i;
for (i=1;i<=n;i++) sol/=i;
printf("%lf\n",sol);
return 0;
}