Cod sursa(job #2038672)

Utilizator skeniaTirla Ovidiu skenia Data 13 octombrie 2017 21:59:16
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int length, level, fr[30],k;
double data[30];
int stack[30];

void print(int level);


void generateCombinations(int level) {
    if (level == length) {
        print(level);
        return;
    }
    for (int iter = 1; iter <= length; ++iter) {
        if (fr[iter] == 0) {
            stack[level] = iter;
            fr[iter] = true;
            generateCombinations(level + 1);
            fr[iter] = 0;
        }
    }
}

int counter = 0;
double finalProd;
void print(int level) {
    counter++;
    double actualProd = 1;
    for (int iter = 0; iter < k; ++iter) {
        actualProd *= data[stack[iter] - 1];
//        cout << stack[iter] << ' ';
//        number = number * 10 + stack[iter];
    }
//    cout << '\n';
//    cout<<number<<'\n';
    finalProd += actualProd;
}

int main() {
    fin>>length>>k;
    for (int iter = 0; iter < length; ++iter) {
        fin>>data[iter];
    }
    generateCombinations(0);
    fout<<finalProd/counter<<'\n';
    return 0;
}