Pagini recente » Cod sursa (job #1143756) | Cod sursa (job #3005076) | Cod sursa (job #2779998) | Cod sursa (job #2512849) | Cod sursa (job #2422386)
#include<fstream>
#include<iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k, x[26], number;
double fract[26], suma;
void back(int l) {
if (l == k) {
number++;
double produs = 1;
for (int i = 1; i <= k; ++i)
produs *= fract[x[i]];
suma += produs;
} else {
for (int i = x[l] + 1; i <= n; ++i)
x[l + 1] = i, back(l + 1);
}
}
int main() {
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> fract[i];
}
back(0);
fout << fixed << setprecision(6) << suma / number;
fin.close();
fout.close();
return 0;
}