Pagini recente » Cod sursa (job #3136972) | Cod sursa (job #408259) | Cod sursa (job #887945) | Cod sursa (job #2901139) | Cod sursa (job #1529436)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
bool nextPermutation(vector <int> &v) {
int i = v.size() - 1;
while(i > 0 && v[i - 1] >= v[i])
-- i;
if(i == 0)
return false;
int head = i;
while(i + 1 < v.size() && v[head - 1] < v[i + 1])
++ i;
swap(v[head - 1], v[i]);
int st = head, dr = v.size() - 1;
while(st < dr) {
swap(v[st], v[dr]);
++ st;
-- dr;
}
return 1;
}
int main() {
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int n;
fin >> n;
vector <int> v;
for(int i = 0 ; i < n ; ++ i) {
v.push_back(i + 1);
}
do {
for(auto it : v)
fout << it << ' ';
cout << '\n';
} while(nextPermutation(v));
}