Pagini recente » Cod sursa (job #258153) | Cod sursa (job #428376) | Cod sursa (job #3310360) | Cod sursa (job #1630478) | Cod sursa (job #3348626)
#include <bits/stdc++.h>
using namespace std;
double probs[30];
int N, K;
int indexes[30];
bool viz[30];
double total = 0;
int cnt = 0;
void bckt (int i = 0) {
if (i == K) {
double temp = 1;
for (int j = 0; j < K; ++j) {
temp *= probs[indexes[j]];
}
total += temp;
cnt++;
return;
}
for (int k = 0; k < N; ++k) {
if (!viz[k]) {
indexes[i] = k;
viz[k] = true;
bckt(i + 1);
viz[k] = false;
}
}
}
int main() {
freopen("dezastru.in", "r", stdin); freopen("dezastru.out", "w", stdout); cin.tie(NULL); cout.tie(NULL);
cin >> N >> K;
for (int i = 0; i < N; ++i) {
cin >> probs[i];
}
bckt();
cout << fixed << setprecision(6) << total / cnt;
return 0;
}