Pagini recente » Cod sursa (job #1116222) | Cod sursa (job #2572462) | Cod sursa (job #2689493) | Cod sursa (job #1399273) | Cod sursa (job #2504691)
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
double sol = 0;
int num_cmb = 0;
int n, k;
vector <double> p(25);
void combinari(int idx, int curr_len, double curr_prod) {
if (curr_len == k) {
sol += curr_prod;
num_cmb++;
return;
}
for (int i = idx; i < n; i++) {
combinari(i + 1, curr_len + 1, curr_prod * p[i]);
}
}
int main() {
in >> n >> k;
for (int i = 0; i < n; i++) {
in >> p[i];
}
int curr_len = 0;
double curr_prod = 1;
combinari(0, curr_len, curr_prod);
out << fixed << setprecision(6) << sol / num_cmb << '\n';
return 0;
}