Cod sursa(job #403694)
| Utilizator | Data | 25 februarie 2010 10:37:04 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <cstdio>
using namespace std;
float a[30],sol;
int n,k,np;
void comb(int pz,int nm,float p)
{
if(nm==k+1)
{
sol+=p;
++np;
}
else
for(int i=pz+1;i<=n-(k-nm);i++)
comb(i,nm+1,p*a[i]);
}
int main()
{
FILE *f=fopen("dezastru.in","r");
FILE *g=fopen("dezastru.out","w");
fscanf(f,"%d %d",&n,&k);
int i;
for(int i=1;i<=n;i++) fscanf(f,"%f",&a[i]);
comb(0,1,1.00);
sol/=np;
fprintf(g,"%.6f",sol);
return 0;
}
