Cod sursa(job #2038719)

Utilizator skeniaTirla Ovidiu skenia Data 13 octombrie 2017 22:34:02
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 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 == k + 1) {
        print(level);
        return;
    }
    for (int iter = stack[level - 1] + 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 = 1; iter < level; ++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(1);
//    cout<<counter;
    fout<<(finalProd/counter)<<'\n';
    return 0;
}