Cod sursa(job #1983254)

Utilizator vladm98Munteanu Vlad vladm98 Data 21 mai 2017 15:48:21
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

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

double v[26];
int s[26];
int frecventa[26];
double sum;
int cate;

void afisare (int k)
{
    double produs = 1.0;
    for (int i = 1; i<=k; ++i)
        produs*=v[s[i]];
    sum += produs;
    ++cate;
}

void btracking (int n, int pas, int k)
{
    if (pas<=k)
    {
        for (int i=s[pas-1]+1;i<=n;++i)
        {
            s[pas] = i;
            btracking(n, pas+1, k);
        }
    }
    else
    {
        afisare (k);
        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 << sum/cate;

}