Pagini recente » Cod sursa (job #570048) | Cod sursa (job #2008636) | Cod sursa (job #1665587) | Cod sursa (job #72387) | Cod sursa (job #374089)
Cod sursa(job #374089)
#include<cstdio>
FILE *in=fopen("dezastru.in","r"),*out=fopen("dezastru.out","w");
int N,K,i,st[30];
float v[30],prob,r=1;
void calcul()
{
float q=1;
for(i=1;i<=K;i++)
q*=v[st[i]];
prob+=q*r;
}
void bktr(int p)
{
for(int pval=st[p-1]+1;pval<=N-K+p;pval++)
{
st[p]=pval;
if(p==K) calcul();
else bktr(p+1);
}
}
int main()
{
fscanf(in,"%d %d",&N,&K);
for(i=1;i<=N;i++)
fscanf(in,"%f",&v[i]);
for(i=1;i<=N-K;i++) r*=i;
for(i=K+1;i<=N;i++) r/=i;
bktr(1);
fprintf(out,"%f",prob);
return 0;
}