Cod sursa(job #1126832)
Utilizator | Data | 27 februarie 2014 09:56:34 | |
---|---|---|---|
Problema | Dezastru | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <cstdio>
using namespace std;
FILE *f=fopen("dezastru.in","r");
double p[26],sum;
int n,k,caz;
void backtrack(int ultim,int nr,double prob)
{int i;
if (nr<=k) for (i=ultim+1;i<=n;i++) {i++;
i--;
backtrack(i,nr+1,prob*p[i]);
i--;
i++;}
else {sum+=prob;
caz++;
}
}
int main()
{int i;
fscanf(f,"%d %d",&n,&k);
for (i=1;i<=n;i++) fscanf(f,"%lf",&p[i]);
backtrack(0,1,1);
sum/=caz;
FILE *g=fopen("dezastru.out","w");
fprintf(g,"%.6lf",sum);
return 0;
}