Cod sursa(job #2462672)

Utilizator ParutixLungeanu Razvan Parutix Data 27 septembrie 2019 18:44:44
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

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

int N , P , F[25];
double A[25] , V[25] , Suma = 0;

int Factorial(int N)
{
    if(N == 0)
    {
        return 1;
    }
    return N * Factorial(N - 1);
}

bool OK(int K)
{
    for(int i = 1 ; i < K ; ++i)
    {
        if(V[i] == V[K]) return false;
    }
    return true;
}

void Afisare()
{
    double Prod = 1;
    for(int i = 1 ; i <= P ; ++i)
    {
        Prod = Prod * V[i];
    }
    Suma += Prod;

}

void Back(int K)
{
    int i;
    for(i = 1 ; i <= N ; ++i)
    {
        V[K] = A[i];
        if(F[i] == 0)
        {
            F[i] = 1;
            if(K == P)
            {
                Afisare();
            }
            else Back(K + 1);
            F[i] = 0;

        }
    }
}

int main()
{
    fin >> N >> P;
    for(int i = 1 ; i <= N ; ++i)
    {
        fin >> A[i];
    }
    Back(1);
    fout << Suma / Factorial(N);
    return 0;
}