Cod sursa(job #3196556)

Utilizator oana75Ioana Prunaru oana75 Data 24 ianuarie 2024 11:22:25
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;
const int NMAX = 26;

int N, K;
double fact, P[NMAX], sol;
bool viz[NMAX];

ifstream f("dezastru.in");
ofstream g("dezastru.out");

void BT(int k, double prod)
{
    for (int i = 1; i <= N; i++)
        if(viz[i] == 0)
        {
            viz[i] = 1;
            prod *= P[i];

            if(k == K)
                sol += prod * fact;
            else
                BT(k + 1, prod);

            viz[i] = 0;
            prod /= P[i];
        }
}

int main()
{
    fact = 1.0;
    f >> N >> K;
    for (int i = 1; i <= N; i++)
    {
        f >> P[i];
        fact *= i;
    }
    fact = 1.0 / fact;

    BT(1, 1.0);
    g << sol;

    f.close();
    g.close();
    return 0;
}