Cod sursa(job #589405)
| Utilizator | Data | 12 mai 2011 09:08:58 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<cstdio>
using namespace std;
#define Nmax 32
int N, M, nrperm;
double A[Nmax], sum;
void back(int k, int poz, double prod) {
if(k==M+1) {
nrperm++;
sum+=prod;
}
else {
int i;
for(i=poz+1; i<=N-M+k; i++)
back(k+1, i, prod*A[i]);
}
}
int main() {
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
scanf("%d %d",&N,&M);
for(i=1; i<=N; i++)
scanf("%lf",&A[i]);
back(1,0,1);
printf("%.6lf\n", sum / nrperm);
return 0;
}