Pagini recente » Borderou de evaluare (job #686369) | Borderou de evaluare (job #641175) | Diferente pentru problema/hamilton intre reviziile 35 si 34 | Diferente pentru template/algoritmiada-2009/header intre reviziile 5 si 6 | Cod sursa (job #158800)
Cod sursa(job #158800)
#include<cstdio>
double rez,a[30],fact[30];
int n,k,nr;
void comb(int i,int last,float rez1)
{
if(i==k+1) {rez+=rez1;nr++;return;}
for(int j=last+1;j<=n-(k-i);j++)
comb(i+1,j,rez1*a[j]);
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++) scanf("%lf",&a[i]);
comb(1,0,1.0);
printf("%.6lf",rez/nr);
fclose(stdout);
return 0;
}