Pagini recente » Cod sursa (job #2203940) | Cod sursa (job #2483025) | Cod sursa (job #2017812) | Cod sursa (job #784964) | Cod sursa (job #221372)
Cod sursa(job #221372)
#include<stdio.h>
int n,m,s[26],a[26][26];
float p[26],sp,pr;
void comb(){
int i,j;
for(i=0;i<=n;++i) a[i][0]=1;
for(i=1;i<=n;++i)
for(j=1;j<=i;++j)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
void bkt(){
int up,k=1;
s[k]=0;
while(k){
up=0;
if(k==1) pr=1;
while(!up&&s[k]<n-m+k){
s[k]++;pr=pr*p[s[k]];
up=1;
}
if(up)
if(k==m) sp=sp+pr,pr/=p[s[m]];
else k++,s[k]=s[k-1];
else {
k--;
if(k) pr=pr/p[s[k]];
}
}
}
int main(){
int i,c;
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i) scanf("%f",&p[i]);
comb();
c=a[n][m];
bkt();
printf("%f",sp/c);
return 0;
}