Pagini recente » Cod sursa (job #2897815) | Cod sursa (job #2677661) | Cod sursa (job #922835) | Cod sursa (job #2217447) | Cod sursa (job #2507049)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int N, K;
float p[30];
float P = 1, rez = 0;
bool viz[30];
int ct;
void Back(int top) {
if (top == K + 1) {
rez += P;
ct++;
// cout << P << "\n";
}
else
for (int i = 1; i <= N; i++) {
if (viz[i] == 0) {
viz[i] = true;
P *= p[i];
Back(top + 1);
P /= p[i];
viz[i] = false;
}
}
}
int main() {
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
fin >> N >> K;
for (int i = 1; i <= N; i++) {
fin >> p[i];
}
Back(1);
fout << fixed << setprecision(6) << rez/(float)ct;
}