Cod sursa(job #2245258)

Utilizator pionierul22aNa LiZa pionierul22 Data 24 septembrie 2018 21:48:36
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k1,nr,v[26];
float x[26],s;

int cond(int k)
{
    for(int i=1;i<k;i++)
        if(v[i]==v[k])
        return 0;
    return 1;
}

void calc()
{
    float p=1;
    for(int i=1;i<=k1;i++)
        p*=x[v[i]];
    s+=p;
}

void back(int k)
{
    if(k>k1)
    {
        nr++;
        calc();
    }
    else
        for(int i=1;i<=n;i++)
    {
        v[k]=i;
        if(cond(k)==1)
            back(k+1);
    }
}

int main()
{
    fin>>n>>k1;
    for(int i=1;i<=n;i++)
        fin>>x[i];
    back(1);
    fout<<setprecision(6)<<fixed<<(float)s/nr;
    return 0;
}