Cod sursa(job #2505132)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 6 decembrie 2019 11:31:35
Problema Dezastru Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#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;
    if (r <= k) {
        for (i = t[r] + 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;
}