Cod sursa(job #3355179)

Utilizator dariadrdariaa dariadr Data 21 mai 2026 23:18:43
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;

int N;
vector<int> sol;
vector<bool> viz;

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

void backtracking(int k) {
    if (k == N) {
        for (int i = 0; i < N; ++i) {
            fout << sol[i] << " ";
        }
        fout << "\n";
        return;
    }

    for (int i = 1; i <= N; ++i) {
        if (!viz[i]) {
            viz[i] = true;
            sol[k] = i;
            
            backtracking(k + 1); // Trecem la urmatoarea pozitie
            
            viz[i] = false; // Stergem marcajul la intoarcere
        }
    }
}

int main() {
    if (!(fin >> N)) return 0;

    sol.resize(N);
    viz.resize(N + 1, false);

    backtracking(0);

    return 0;
}