Cod sursa(job #2685844)

Utilizator WilIiamperWilliam Damian Balint WilIiamper Data 17 decembrie 2020 20:22:05
Problema Dezastru Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <iomanip>

using namespace std;

ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");

int n, k, comb[26], ap[26], nrSol;
float prob[26], sol;

void dp ( int lvl, float res ) {

    if ( lvl > k ) {
        sol += res;
        nrSol++;
        return;
    }

    for ( int i = comb[lvl-1]+1; i <= n; i++ ) {
        comb[lvl] = i;
        dp ( lvl+1, res * prob[i] );
    }
}

void solve () {
    dp(1, 1);
    sol /= nrSol;
}

void read () {
    fin >> n >> k;

    for (int i = 1; i <= n; i++)
        fin >> prob[i];
}

int main()
{
    read();
    solve();

    fout << setprecision(6) << fixed << sol << "\n";
    return 0;
}