Pagini recente » Cod sursa (job #211350) | Cod sursa (job #1398408) | Cod sursa (job #3038893) | Cod sursa (job #308473) | Cod sursa (job #2926479)
#include <iostream>
#include <fstream>
bool is_valid(const int *solution, int step) {
for (int i = 1; i < step; ++i) {
if (solution[i] == solution[step]) return false;
}
return true;
}
void generate(int n, int step, int *solution, std::ofstream &ofstream) {
for (int i = 1; i <= n; ++i) {
solution[step] = i;
if (is_valid(solution, step)) {
if (step == n) {
for (int j = 1; j <= n; ++j) {
ofstream << solution[j] << " ";
}
ofstream << '\n';
} else generate(n, step + 1, solution, ofstream);
}
}
}
int main() {
std::ifstream input("permutari.in");
std::ofstream output("permutari.out");
int n, solution[10] = {0};
input >> n;
generate(n, 1, solution, output);
return 0;
}