Cod sursa(job #2035710)

Utilizator Cristi_ChiraChira Cristian Cristi_Chira Data 9 octombrie 2017 19:33:30
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <map>
#include <climits>
#define dm 30
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int checked[dm], n, k;
float v[dm], st[dm];
void citire()
{
    fin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        fin >> v[i];
    }
}
int maxx = INT_MIN;
float sum = 0;
double nrperm = 1;
double prod = 1;
void afis()
{
    fout << maxx / k;
}
void nrp()
{
    for(int i = 1; i <= n; i++)
        nrperm*=i;
}
void perm(int niv)
{
    if( niv == n + 1)
    {
        for(int i = 1; i <= k; i++)
            prod *= st[i];
        sum += prod/nrperm;
        return;
    }
    prod = 1;
    for(int i = 1; i <= n; i++)
    {
        if(!checked[i])
        {
            //fout << i << " ";
            checked[i] = 1;
            st[niv] = v[i];
            perm(niv + 1);
            checked[i] = 0, prod = 1;
        }

    }
}
int main()
{
    citire();
    nrp();
    perm(1);
    fout << sum;
    return 0;
}