Cod sursa(job #811062)
| Utilizator | Data | 11 noiembrie 2012 14:24:44 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <cstdio>
int x[26],viz[26],n,k,nr;
double p[26],s,pr=1;
void citire () {
int i;
freopen("dezastru.in","r",stdin);
scanf("%d%d",&n,&k);
for (i=1;i<=n;i++)
scanf("%ld",&p[i]);
}
void actualizare () {
s+=pr;
}
void back (int vf) {
int i;
for (i=x[vf-1]+1;i<=n-k+vf;i++) {
x[vf]=i;
pr*=p[x[vf]];
if (vf==k) {
nr++;
actualizare();
}
else back(vf+1);
pr/=p[x[vf]];
}
}
int main () {
citire();
back(1);
freopen ("dezastru.out","w",stdout);
printf("%.6lf",s/nr);
return 0;
}
