Pagini recente » Cod sursa (job #1849341) | Cod sursa (job #2738044) | Cod sursa (job #2291725) | Cod sursa (job #2427367) | Cod sursa (job #46155)
Cod sursa(job #46155)
#include <stdio.h>
int n,k,sol[100];
float p[27],s=0,pr;
long long t;
void generare(){
int i, j;
for (i=1; i<=k; i++) sol[i]=i;
while (1){
t++;
//for (j=1; j<=k; j++) printf("%d ",sol[j]); //combinarea
//printf("\n");
pr=1;
for (j=1;j<=k;j++)pr*=p[sol[j]];
//printf("%f\n",pr);
s+=pr;
for (j=k; j>0 && sol[j]==n-k+j;j--);
if (!j) return;
sol[j]++;
for (j++; j<=k; j++) sol[j]=sol[j-1]+1;
}
}
int main(){
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
scanf("%d %d",&n,&k);
for (i=1;i<=n;i++)scanf("%lf",&p[i]);
//for(i=1;i<=n;i++)printf("%f ",p[i]);
/*f[0]=1;
for (i=1;i<=25;i++){
f[i]=f[i-1]*i;
}*/
generare();
printf("%.7f",s/t);
return 0;
}