Cod sursa(job #2926479)

Utilizator AleXutzZuDavid Alex Robert AleXutzZu Data 17 octombrie 2022 20:26:47
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#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;
}