Pagini recente » Cod sursa (job #2688071) | Cod sursa (job #226312) | Cod sursa (job #1606979) | Cod sursa (job #321930) | Cod sursa (job #221295)
Cod sursa(job #221295)
#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;
else k++,s[k]=s[k-1];
else pr=pr/p[s[k]],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;
}