Cod sursa(job #3196582)

Utilizator oana75Ioana Prunaru oana75 Data 24 ianuarie 2024 12:09:13
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>

using namespace std;
const int NMAX = 26;

int N, K, nrsol, sol[NMAX];
double P[NMAX], rez;

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

void BT(int k, double prod)
{
    if(k <= K)
        for (int i = sol[k - 1] + 1; i <= N - K + k; i++)
        {
            sol[k] = i;
            BT(k + 1, prod * P[i]);
        }
    else
    {
        nrsol++;
        rez += prod;
    }
}

int main()
{
    f >> N >> K;
    for (int i = 1; i <= N; i++)
        f >> P[i];
    BT(1, 1.0);
    g << fixed << setprecision(6) << rez / nrsol;
    f.close();
    g.close();
    return 0;
}