Pagini recente » Cod sursa (job #2977979) | Cod sursa (job #634976) | Cod sursa (job #1587168) | Cod sursa (job #1614869) | Cod sursa (job #2291719)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n, k, solutions;
double ans;
vector< double > vals(30), sol(30);
vector< bool > viz(30, false);
void bkt(int poz) {
if(poz == k) {
double temp = 1.0;
for(int i = 0; i < k; ++i) {
temp *= sol[i];
}
ans += temp;
++solutions;
return;
} else {
for(int i = 0; i < n; ++i) {
if(!viz[i]) {
sol[poz] = vals[i];
viz[i] = true;
bkt(poz + 1);
viz[i] = false;
}
}
}
}
int main() {
ios::sync_with_stdio(false); in.tie(0); out.tie(0);
in >> n >> k;
for(int i = 0; i < n; ++i) {
in >> vals[i];
}
bkt(0);
ans /= double(solutions);
out << fixed << setprecision(6) << ans << "\n";
in.close(); out.close();
return 0;
}