Pagini recente » Cod sursa (job #634229) | Cod sursa (job #1821507) | Cod sursa (job #1405438) | Cod sursa (job #2317450) | Cod sursa (job #1721111)
#include <cstdio>
using namespace std;
short n,k,st[26],niv,cnt,i;
double perm[27], v,val[26];
inline bool succ()
{
if(st[niv]<n)
{++st[niv];return 1;}
return 0;
}
int main()
{
FILE *f=freopen("dezastru.in","r",stdin),
*g=freopen("dezastru.out","w",stdout);
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;
niv=1;st[niv]=st[niv-1];;
bool s;
while(niv)
{
s=succ();
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;
}
v=v/cnt;
printf("%f",v);
}