Pagini recente » Cod sursa (job #1904367) | Cod sursa (job #1306486) | Cod sursa (job #2652566) | Cod sursa (job #2543542) | Cod sursa (job #1721121)
#include <cstdio>
using namespace std;
int main()
{
FILE *f=freopen("dezastru.in","r",stdin),
*g=freopen("dezastru.out","w",stdout);
double perm[27], v=0,val[26];
short n,k,st[26],niv,cnt=0,i;
scanf("%hd %hd",&n,&k);
for(i=1;i<=n;++i)
scanf("%lf",&val[i]);
perm[0]=1;
for(i=1;i<=k;++i)
perm[i]=perm[i-1]*i;
st[0]=0;
niv=1;st[niv]=st[niv-1];
bool s;
while(niv)
{
if(st[niv]<n)
{++st[niv];s=1;}
else s=0;
if(s)
if(niv==k)
{
double p=1;cnt+=perm[k];
for(i=1;i<=k;++i)
p*=val[st[i]];
v+=p*perm[k];
}
else ++niv,st[niv]=st[niv-1];
else --niv;
}
printf("%f",v/cnt);
}