Pagini recente » Cod sursa (job #190812) | Cod sursa (job #1702675) | Cod sursa (job #1124505) | Cod sursa (job #2559528) | Cod sursa (job #2036429)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
void AfiseazaVector(vector<int> &v)
{
for (int i = 1; i < v.size(); i++)
out << v[i] << ' ';
out << '\n';
}
void ShiftLeft(vector<int> &v, int k)
{
int temp = v[k];
for (int i = k + 1; i < v.size(); i++)
{
v[i - 1] = v[i];
}
v.back() = temp;
}
void GenereazaPermutari(vector<int>& v, int k)
{
if (k >= v.size() - 1)
{
AfiseazaVector(v);
return;
}
for (int i = k; i < v.size(); i++)
{
swap(v[k], v[i]);
GenereazaPermutari(v, k + 1);
}
ShiftLeft(v, k);
}
int main()
{
int N;
in >> N;
vector<int> v(N + 1, 0);
for (int i = 1; i <= N; i++)
{
v[i] = i;
}
GenereazaPermutari(v, 1);
}