Pagini recente » Cod sursa (job #215418) | Cod sursa (job #654498) | Cod sursa (job #2135983) | Cod sursa (job #1701769) | Cod sursa (job #173687)
Cod sursa(job #173687)
#include<stdio.h>
#include<math.h>
long s[30],n,c,k,nr=0;
double v[30],p,sf,re;
void citire(long i)
{
if(i<=n)
{scanf("%lf",&v[i]);
citire(i+1);
}
}
void back(long int k,double p)
{long int i,j;
int ok;
if(k==c)
{for(i=1;i<=c;i++)
p=p*v[s[i]];
nr++;
sf=sf+p;
}
else
{ for(i=1;i<=n;i++)
{ok=1;
for(j=1;j<=k;j++)
if(s[j]==i)
{ok=0;
break;
}
if(ok)
{s[k+1]=i;
back(k+1,p);
}
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%ld %ld",&n,&c);
citire(1);
sf=0;
back(0,1);
re=sf/nr;
printf("%6lf ",re);
return 0;
}