Pagini recente » Cod sursa (job #2479434) | Cod sursa (job #2033217) | Cod sursa (job #1441606) | Cod sursa (job #1192357) | Cod sursa (job #2470394)
#include<iostream>
#include<vector>
#include<algorithm>
#include<fstream>
using namespace std;
int generate_perm(int pos, int n, vector<int> &cur_perm, vector<vector <int>> &perm) {
if (pos == n + 1) {
perm.push_back(cur_perm);
return 1;
}
for (int i = 1; i <= n; i++) {
if (find(cur_perm.begin(), cur_perm.end(), i) == cur_perm.end()) {
vector<int> new_perm = cur_perm;
new_perm.push_back(i);
generate_perm(pos + 1, n, new_perm, perm);
}
}
return 1;
}
int main() {
#ifdef INFOARENA
ifstream cin("permutari.in");
ofstream cout("permutari.out");
#endif
int n; cin >> n;
vector<int> cur_perm;
vector<vector <int>> perm;
generate_perm(1, n, cur_perm, perm);
for (int i = 0; i < (int)perm.size(); i++) {
for (int j = 0; j < n; j++)
cout << perm[i][j] << " ";
cout << "\n";
}
return 0;
}