Pagini recente » Cod sursa (job #598890) | Cod sursa (job #2981545) | Cod sursa (job #3175974) | Cod sursa (job #1775156) | Cod sursa (job #2038672)
#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;
}