Pagini recente » Cod sursa (job #333729) | Cod sursa (job #233444) | Cod sursa (job #1815352) | Cod sursa (job #1230831) | Cod sursa (job #195533)
Cod sursa(job #195533)
#include<stdio.h>
int N, K;
double p[30];
double Pt;
long long cnk=1;
FILE *in, *out;
void Comb(int n, int k){
int i;
if((k<<1)<n)
k=n-k, n-=k;
for(i=k+1;i<=n;++i)
cnk*=i;
for(i=1;i<=n-k;++i)
cnk/=i;
}
void back(int i, int x, double Pc){
int j, l=N-K+i+2;
if(i==K)
Pt+=Pc;
else
for(j=x;j<l;++j)
back(i+1, j+1, Pc*p[j]);
}
int main(){
int i;
in=fopen("dezastru.in", "rt");
fscanf(in,"%d%d",&N,&K);
for(i=1;i<=N;i++)
fscanf(in,"%lf",&p[i]);
Comb(N,K);
back(0,1,1);
out=fopen("dezastru.out", "wt");
fprintf(out,"%.8lf",Pt/cnk);
fclose(out);
return 0;
}