Cod sursa(job #1673027)

Utilizator RobertSSamoilescu Robert RobertS Data 3 aprilie 2016 13:17:21
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <string.h>
#include <vector>

std::ifstream fin("permutari.in");
std::ofstream fout("permutari.out");


void back_tracking(int N, bool *viz, std::vector<int> v) {

    if (v.size() == (unsigned int)N) {
        for (size_t i = 0; i < v.size(); i++)
            fout << v[i] << " ";
        fout << '\n';
        return;
    }

    for (int i = 1; i <= N; i++) {

        if (!viz[i]) {
            viz[i] = true;
            v.push_back(i);
            back_tracking(N, viz, v);
            viz[i] = false;
            v.pop_back();
        }

    }

}

int main()
{

    int N;
    fin >> N;

    bool viz[N+1];
    memset(viz, false, sizeof(viz));

    std::vector<int> v;
    back_tracking(N, viz, v);

    return 0;
}