Pagini recente » Cod sursa (job #811498) | Cod sursa (job #1411581) | Cod sursa (job #1121761) | Cod sursa (job #1756941) | Cod sursa (job #1611674)
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>
#include <iterator>
#include <list>
using namespace std;
void _write_all_permutations(ofstream& g, vector<int>& v, vector<int>& cur){
if(v.empty()){
copy(cur.begin(), cur.end(), ostream_iterator<int>(g, " "));
g << '\n';
return;
}
for(int i = 0; i < v.size(); ++i){
cur.push_back(v[i]);
v.erase(v.begin()+i);
_write_all_permutations(g, v, cur);
v.insert(v.begin()+i, cur.back());
cur.pop_back();
}
}
void write_all_permutations(ofstream& g, const int n){
vector<int> v(n), cur;
for(int i = 0; i < n; ++i){
v[i] = i+1;
}
_write_all_permutations(g, v, cur);
}
int main()
{
ifstream f("permutari.in");
ofstream g("permutari.out");
int n;
f >> n;
write_all_permutations(g, n);
return 0;
}