Cod sursa(job #2198140)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 23 aprilie 2018 18:35:26
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 101

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

double a[NMAX];
vector< double> Perm[NMAX];
int visited[NMAX];
int nr;
int N,K,x[NMAX];
double finalresult;
int calcProbability()
{
    double prod=1;
    for(int i =1 ; i <= K; i++)
    {
        prod*=a[x[i]];
    }
    Perm[nr].push_back(prod);

}
int answer(int k)
{
    if(k == N+1)
    {
        nr++;
        calcProbability();
    }
    else
    {
        for(int i =1 ; i <= N; i ++)
            if(!visited[i])
        {
            visited[i]=1;
            x[k]=i;
            answer(k+1);
            visited[i]=0;
        }

    }
}
int FindRezist()
{
    for(int i =1 ; i <= nr; i++)
    {
        finalresult+=Perm[i].back()/nr;
    }
}
int main()
{
    fin>>N>>K;
    for(int i =1 ; i <= N; i ++)
    {
        fin>>a[i];
    }
    answer(1);
    FindRezist();
    fout<<finalresult;

    return 0;
}