Cod sursa(job #1985082)

Utilizator HumikoPostu Alexandru Humiko Data 26 mai 2017 20:44:57
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <iomanip>

using namespace std;

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

int frecventa[26];
double suma, cate, v[26];


void afisare (int n)
{
    double produs=1.0;
    for (int i=1;i<=n;++i)
        if (frecventa[i])
            produs*=v[i];
        suma+=produs;
        cate++;



}

void btracking (int n, int pas, int k)
{
    if (pas<=k)
    {
        for (int i=1;i<=n;++i)
            if (frecventa[i]==0)
            {
                frecventa[i]=1;
                btracking(n, pas+1, k);
                frecventa[i]=0;
            }
    }
    else
    {
        afisare (n);
        return;
    }
}

int main()
{
    int n, k, n_factorial=1, k_factorial=1, nrperm;
    fin>>n>>k;
    for (int i=1;i<=n;++i)
        fin>>v[i];
    btracking(n, 1, k);
    fout<<setprecision(6)<<fixed<<suma/cate;

}