Pagini recente » Cod sursa (job #2198235) | Cod sursa (job #224031) | Cod sursa (job #217477) | Cod sursa (job #903508) | Cod sursa (job #2507047)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int N, K;
double p[30];
int v[30];
double 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;
v[top] = i;
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];
}
v[0] = 0;
Back(1);
fout << fixed << setprecision(6) << rez/ct;
}