Cod sursa(job #37383)
Utilizator | Tiberiu-Lucian Florea greco | Data | 24 martie 2007 23:12:00 |
---|---|---|---|
Problema | Dezastru | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
using namespace std;
#include <cstdio>
#include <vector>
#include <algorithm>
int N, K;
double v[64];
int main()
{
int i, cnt;
double sum, 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);
for (sum = 0., cnt = 0; cnt < 150000; ++cnt) {
random_shuffle(v, v+N);
for (t = 1., i = 0; i < K; ++i)
t *= v[i];
sum += t;
}
printf("%lf\n", sum/(double)cnt);
return 0;
}