Pagini recente » Cod sursa (job #2658901) | Cod sursa (job #1488409) | Cod sursa (job #1329182) | Cod sursa (job #3343211) | Cod sursa (job #3303450)
#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;
}