Pagini recente » Cod sursa (job #3360621) | Diferente pentru utilizator/overflow intre reviziile 2 si 3 | Atasamentele paginii Profil Jordica | Cod sursa (job #3360590) | Cod sursa (job #3360597)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void inv(vector<int>& el,int j) {
int stanga = j;
int dreapta = el.size() - 1;
while (stanga < dreapta) {
swap(el[stanga],el[dreapta]);
stanga++;
dreapta--;
}
}
int main()
{
int n;
fin>>n;
vector<int> el(n+1);
for (int i=1;i<=n;i++)
{
el[i]=i;
fout<<el[i]<<" ";
}
fout<<"\n";
while (true)
{
bool st=false;
for (int i=n-1;i>0;i--)
{
if (el[i]<el[i+1])
{
st=true;
for (int j=n;j>i;j--)
{
if (el[j]>el[i])
{
swap(el[i],el[j]);
inv(el,i+1);
break;
}
}
for (int y=1;y<=n;y++)
{
fout<<el[y]<<" ";
}
fout<<"\n";
break;
}
}
if (st==false)
{
return 0;
}
}
}