Pagini recente » Cod sursa (job #2103941) | Cod sursa (job #2328207) | Cod sursa (job #2006616) | Cod sursa (job #1891057) | Cod sursa (job #2470392)
#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.begin() + pos + 1, i) > cur_perm.begin() + pos) {
cur_perm[pos] = i;
generate_perm(pos + 1, n, cur_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(n + 1, -1);
vector<vector <int>> perm;
generate_perm(1, n, cur_perm, perm);
for (int i = 0; i < (int)perm.size(); i++) {
for (int j = 1; j <= n; j++)
cout << perm[i][j] << " ";
cout << "\n";
}
return 0;
}