Cod sursa(job #2702665)

Utilizator vnedelcuVictor Andrei Nedelcu vnedelcu Data 5 februarie 2021 12:53:43
Problema Generare de permutari Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <vector>

using namespace std;

void write_perms_to_file(
    int crnt_perm_pos, vector<int> & crnt_perm,
    vector<bool> & used, ofstream & fout
) {

    if (crnt_perm_pos == crnt_perm.size()) {
        for (int x: crnt_perm) {
            fout << x << " ";
        }
        fout << endl;
        return;
    }

    for (int value = 1; value <= crnt_perm.size(); value++) {
        if (!used[value - 1]) {
            crnt_perm[crnt_perm_pos] = value;
            used[value - 1] = true;
            write_perms_to_file(crnt_perm_pos + 1, crnt_perm, used, fout);
            used[value - 1] = false;
        }
    }
}

int main() {
    int n;
    ifstream fin("permutari.in");
    fin >> n;
    fin.close();

    vector<int> perm(n);
    vector<bool> used(n);
    ofstream fout("permutari.out");
    write_perms_to_file(0, perm, used, fout);
    fout.close();
    
    return 0;
}