Cod sursa(job #809089)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 7 noiembrie 2012 21:14:17
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
FILE *f=fopen("dezastru.in","r"),*g=fopen("dezastru.out","w");
float a[26],sol;
int n,k,kfac,b[26],nrsol=0;
void Citire()
{int i;
fscanf(f,"%d %d",&n,&k);
for (i=1;i<=n;i++) fscanf(f,"%f",&a[i]);
}
int fact(int x)
{int i,s=1;
for (i=2;i<=x;i++) s*=i;
return s;
}
void PrelSol()
{int i;float prob;prob=1;
for (i=1;i<=k;i++) prob*=a[b[i]];
prob/=nrsol;
//prob*=kfac;
sol+=prob;

}
void Back(int p)
{int i;
if (p==k+1) PrelSol();
else for (i=1;i<=n;i++) {b[p]=i;if (b[p]>b[p-1])Back(p+1);}
}
int main()
{
Citire();
kfac=fact(k);
nrsol=fact(n);
Back(1);
sol*=kfac;
fprintf(g,"%f",sol);
return 0;
}