Pagini recente » Cod sursa (job #2188731) | Cod sursa (job #3355910) | Cod sursa (job #3352612) | Cod sursa (job #1357979) | Cod sursa (job #3338096)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("dezastru.in");
ofstream cout("dezastru.out");
int n, k;
vector<double> v;
vector<int> idx;
double prob;
int prob_divider = 0;
void solution_found() {
double prod = 1;
for (int i = 1 ; i <= k ; ++i) {
prod *= v[idx[i]];
}
prob += prod;
++prob_divider;
}
void back(int poz) {
if (poz > k) {
solution_found();
return;
}
for (int i = idx[poz - 1] + 1 ; i <= n ; ++i) {
idx[poz] = i;
back(poz + 1);
}
}
int main() {
cin >> n >> k;
v.assign(n + 2, 0);
idx.assign(n + 2, 0);
for (int i = 1 ; i <= n ; ++i) {
cin >> v[i];
}
back(1);
cout << prob / prob_divider;
return 0;
}