Cod sursa(job #2223875)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 21 iulie 2018 21:50:40
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>
#include <vector>
#include <string>

using namespace std;

const string IN_FILE = "permutari.in";
const string OUT_FILE = "permutari.out";

void back(
        const int n,
        vector<int>& permutation,
        const int i,
        vector<bool>& used,
        ofstream& out) {
    if (i == n) {
        for (int j = 0; j < n; j++) {
            out << permutation[j] << (j + 1 < n ? " " : "\n");
        }
        return;
    }
    for (int v = 1; v <= n; v++) {
        if (!used[v]) {
            used[v] = true;
            permutation.push_back(v);
            back(n, permutation, i + 1, used, out);
            permutation.pop_back();
            used[v] = false;
        }
    }
}

int readInput() {
    ifstream in(IN_FILE);
    int n;
    in >> n;
    in.close();
    return n;
}

int main() {
    const int n = readInput();
    auto permutation = vector<int>();
    auto used = vector<bool>(n);
    ofstream out(OUT_FILE);
    back(n, permutation, 0, used, out);
    out.close();
    return 0;
}