Cod sursa(job #1822438)

Utilizator anelise.mariaIonescu Maria Anelise anelise.maria Data 4 decembrie 2016 21:41:49
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
int n,K; double v[25],s=0,ss[25];
bool b[25];int nrperm=0;int var=1;

double produs()
{
    int i;
    double p=1;
    for(i=1;i<=K;i++)
        p=p*ss[i];
    return p;
}

void backk(int k, int var)
{
    int i;
    if(k==K)
    {
        s=s+produs();
        nrperm++;
        return;

    }

    for(i=var;i<=n;i++)
    {
        if(b[i]==false)
        {
            b[i]=true;
            ss[++k]=v[i];
            var++;
            backk(k,var);
            b[i]=false;
            k--;
        }
    }

}

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

    int i;
    f>>n>>K;
    for(i=1;i<=n;i++)
        f>>v[i];
    backk(0,1);

    g<<setprecision(6)<<s/nrperm;

    return 0;
}