Pagini recente » Cod sursa (job #154463) | Cod sursa (job #72212) | Cod sursa (job #2889098) | Cod sursa (job #852083) | Cod sursa (job #173682)
Cod sursa(job #173682)
#include<stdio.h>
#include<math.h>
long s[30],n,c,k,nr=0;
double v[20000001],p,sfa[20000001],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++;
sfa[nr]=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);
back(0,1);
sf=0;
for(int i=1;i<=nr;i++)
sf=sfa[i]+sf;
re=sf/nr;
printf("%6lf ",re);
return 0;
}