Cod sursa(job #1976067)

Utilizator BourucLiviuBouruc Petru Liviu BourucLiviu Data 2 mai 2017 18:11:27
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <iomanip>

using namespace std;

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

int n, k, v[30];
double p[30], s;
bool f[30];

void calc()
{
    double prod = 1;
    for(int i = 1; i <= k; ++i) prod *= p[v[i]];
    s += prod;
}

void bkt(int l)
{
    for(int i = 1; i <= n; ++i)
        if(!f[i])
        {
            v[l] = i;
            f[i] = 1;
            if(l == k) calc();
            else bkt(l+1);
            f[i] = 0;
        }
}

int main()
{
    fin >> n >> k;
    for(int i = 1; i <= n; ++i) fin >> p[i];
    fin.close();

    bkt(1);

    fout << setprecision(6) << s/6;
    fout.close();
    return 0;
}