Pagini recente » Cod sursa (job #1535244) | Cod sursa (job #1657206) | Cod sursa (job #1932689) | Cod sursa (job #1867403) | Cod sursa (job #200494)
Cod sursa(job #200494)
#include<stdio.h>
int n,m,s[30];
long nrc;
double prc=1,prt;
double v[30];
void solutie(){
int i;
prc=1;
for(i=1;i<=m;++i)
prc=prc*v[s[i]];
nrc++;
prt+=prc;
}
void btk(){
int k,up;
k=1;s[k]=0;
while(k){
up=0;
s[k]++;
if(s[k]<=n-m+k)
{up=1;prc*=v[s[k]];}
if(up)
if(k==m) {prt+=prc;nrc++;prc/=v[s[m]];}
else {k++;s[k]=s[k-1];}
else {
k--;
if(k) prc=prc/v[s[k]];
}
}
}
int main(){
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
scanf("%d%d",&n,&m);
v[0]=1.0;
for(i=1;i<=n;++i) scanf("%lf",&v[i]);
if(m==0) {prt=1;nrc=1;}
else btk();
printf("%0.7lf",prt/nrc);
return 0;
}