Cod sursa(job #2194713)

Utilizator timar_andreiTimar Andrei timar_andrei Data 14 aprilie 2018 10:38:36
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

int N,K;
int X[30];
double V[30];
vector<double>Res;

void afisare(int pas)
{
    double s=1;
    for(int i=1;i<=pas;i++)
    {
        s *= V[X[i]];
    }
    Res.push_back(s);
}

int sol(int pas)
{
    return pas == K;
}

int verif(int pas)
{
    return pas <= K && X[pas] > X[pas-1];
}

void back(int pas)
{
    for(int i=1;i<=N;i++)
    {
        X[pas] = i;

        if (verif(pas))
        {
            if (sol(pas))
            {
                afisare(pas);
            }
            else
                back(pas+1);
        }
    }
}

int main()
{
    fin>>N>>K;
    for(int i=1;i<=N;i++)
        fin>>V[i];
    back(1);
    double s=0;
    int n = Res.size();
    for(int i=0;i<n;i++)
        s += 1.0*(Res[i]/n);
    fout<<s;
    return 0;
}