Cod sursa(job #1989814)

Utilizator cosmo0093Raduta Cosmin cosmo0093 Data 8 iunie 2017 23:48:43
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>

void perm(int nV, std::vector<int> &vals, std::vector<bool> &check, std::ostream &out) {
    if (nV == int(vals.size())) {
        for (int i(0); i <= nV; i++) {
            out << vals[i] << ' ';
        }
        out << std::endl;
        return;
    }
    for (int i(1); i <= nV; i++) {
        if (check[i]) continue;
        check[i] = true;
        vals.push_back(i);
        perm(nV, vals, check, out);
        vals.pop_back();
        check[i] = false;
    }
}

int main() {
    std::ifstream in("permutari.in");
    std::ofstream out("permutari.out");

    int nV;
    in >> nV;

    std::vector<bool> check(nV + 1, false);
    std::vector<int> vals;

    perm(nV, vals, check, out);

    in.close();
    out.close();

    return 0;
}