Pagini recente » Cod sursa (job #3204698) | Cod sursa (job #2866745) | Cod sursa (job #588082) | Cod sursa (job #577880) | Cod sursa (job #2858846)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k, x[30], cnt;
double v[30], suma;
void calculare() {
cnt++;
double s = 1.0;
for(int i = 1; i <= k; i++) {
s *= v[x[i]];
}
suma += s;
}
void back(int pas) {
for(int i = x[pas - 1] + 1; i <= n; i++) {
x[pas] = i;
if(pas < k) {
back(pas + 1);
} else {
calculare();
}
}
}
int main() {
fin >> n >> k;
for(int i = 1; i <= n; i++) {
fin >> v[i];
}
fin.close();
sort(v + 1, v + n + 1);
back(1);
fout << fixed << setprecision(6) << (suma / (cnt * 1.0));
return 0;
}