Cod sursa(job #743613)
#include <cstdio>
using namespace std;
const int MAXN = 10;
bool folosit[MAXN];
int sol[MAXN],n;
void citire()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf ("%d",&n);
}
void afisare()
{
for (int i = 1;i <= n;++i)
printf ("%d ",sol[i]);
printf ("\n");
}
void bkt(int poz)
{
if (poz > n)
{
afisare();
return;
}
for (int i = 1;i <= n;++i)
if (!folosit[i])
{
folosit[i] = true;
sol[poz] = i;
bkt(poz + 1);
folosit[i] = false;
sol[poz] = 0;
}
}
int main()
{
citire();
bkt(1);
return 0;
}