Cod sursa(job #597032)
| Utilizator | Data | 21 iunie 2011 00:03:49 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <cstdio>
#define MAXN 30
int N, K, cnt;
double A[MAXN], sum;
void comb(int l, int p, double F){
if(p == K){
cnt++;
sum+=F;
}
else {
for(int i=N-K+p+1; i>=l+1; i--)
comb(i, p+1, A[i]*F);
}
}
int main(){
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
int i;
scanf("%d%d", &N, &K);
for(i=1; i<=N; i++)
scanf("%lf", A+i);
cnt=0; sum=0;
comb(0, 0, 1);
printf("%.6lf\n", sum/cnt);
return 0;
}
