Cod sursa(job #3303450)

Utilizator gugalcromMuntoiu Vlad-Ioan gugalcrom Data 15 iulie 2025 16:57:58
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

struct Permutari {
    int N;
    vector<char> vizitat;
    vector<char> permutare;
    explicit Permutari(char N) {
        this->N = N;
        vizitat.resize(N);
    }
    void generare(ostream &out) {
        if(permutare.size() < N) {
            for(int i=0; i<N; ++i) {
                if(!vizitat[i]) {
                    permutare.push_back(i);
                    vizitat[i] = 1;
                    generare(out);
                    vizitat[i] = 0;
                    permutare.pop_back();
                }
            }
        } else {
            for(auto a: permutare) {
                out << (int)a + 1 << ' ';
            }
            out << '\n';
        }
    }
};

int main() {
    ifstream fin("permutari.in");
    ofstream fout("permutari.out");
    int N;
    fin >> N;
    Permutari generator(N);
    generator.generare(fout);
    return 0;
}