Cod sursa(job #286370)
| Utilizator | Data | 23 martie 2009 19:10:48 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <stdio.h>
FILE *fin=fopen("dezastru.in","r");
FILE *fout=fopen("dezastru.out","w");
int x[30], n, k, nrsol;
double p[30],suma=0;
void back(int q)
{
for(int i=x[q-1]+1;i<=n;i++)
{
x[q]=i;
if(q<k)
back(q+1);
else
{
double pp=1;
for(int j=1;j<=k;j++)
pp*=p[x[j]];
suma+=pp;
//fprintf(fout,"%.7lf ",pp);
nrsol++;
}
}
}
int main()
{
fscanf(fin,"%d%d",&n, &k);
for(int i=1;i<=n;i++)
fscanf(fin,"%lf",p+i);
back(1);
fprintf(fout,"%.7lf",suma/nrsol);
return 0;
}
