Pagini recente » Cod sursa (job #652619) | Cod sursa (job #951634) | Cod sursa (job #3259205) | Cod sursa (job #997245) | Cod sursa (job #2505130)
#include <fstream>
#include <iomanip>
#define nmax 25
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k, uz[nmax], t[nmax], num;
double p[nmax], p_tot;
void bkt(int r, double p_)
{
int i, e;
if (r <= k) {
for (i = 1; i <= n; i++)
if (!uz[i]) {
uz[i] = 1;
t[r] = i;
bkt(r + 1, p_ * p[i]);
uz[i] = 0;
t[r] = 0;
}
}
else {
p_tot += p_;
num ++;
}
}
int main()
{
int i, j;
f >> n >> k;
for (i = 1; i <= n; i++)
f >> p[i];
bkt(1, 1.0);
p_tot /= num;
g << setprecision(7) << fixed << p_tot << '\n';
return 0;
}