Cod sursa(job #36572)
| Utilizator | Data | 23 martie 2007 18:41:04 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
using namespace std;
#include <cstdio>
int N, K, tot;
double v[64], sum;
int main()
{
int i, j, cnt;
double t;
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &N, &K);
for (i = 0; i < N; ++i)
scanf("%lf", v+i);
sum = 0.;
for (i = 0; i < (1<<N); ++i) {
for (cnt = 0, t = 1., j = 0; j < N; ++j)
if (i & (1<<j))
++cnt, t *= v[j];
if (cnt == K)
sum += t, ++tot;
}
printf("%lf\n", sum/(double)tot);
return 0;
}
