Pagini recente » Cod sursa (job #2372452) | Cod sursa (job #2418319) | Cod sursa (job #2441983) | Cod sursa (job #969668) | Cod sursa (job #209244)
Cod sursa(job #209244)
# include <stdio.h>
# define IN_FILE "dezastru.in"
# define OUT_FILE "dezastru.out"
# define NMAX 27
int N,K;
FILE *f;
int X[NMAX];
double p[NMAX];
double sum=0.0f;
void writeSol(){
int i;
double aux=1.0f;
for (i=0;i<K;i++)
aux*=p[X[i]-1];
sum+=aux;
}
int cond(int k){
int i;
for (i=0;i<k;i++)
if(X[i]==X[k])
return 1;
return 0;
}
void back(int k){
if (k==K)
writeSol();
else{
int i;
for (i=1;i<=N;i++){
X[k]=i;
if(cond(k)==0)
back(k+1);
}
}
}
int main (){
f=fopen(IN_FILE,"rt");
fscanf(f,"%d %d",&N,&K);
int i;
for (i=0;i<N;i++)
fscanf(f,"%lf",&p[i]);
fclose(f);
back(0);
long long int prod=1;
for (i=2;i<=N;i++)
prod*=i;
f=fopen(OUT_FILE,"wt");
double res=(double)(sum/prod);
fprintf(f,"%.6lf",res);
fclose(f);
return 0;
}