Cod sursa(job #515298)
#include <fstream>
using namespace std;
//variabile globale----------------
int *a,*f;
ofstream fout;
ifstream fin;
//variabile globale
//functii--------------------------
bool solutie(int ,int);
void afiseaza(int);
void bktr(int , int);
//functii
int main()
{
fout.open("permutari.out");
fin.open("permutari.in");
int n;
fin>>n;
a=new int[n+1];
f=new int[n+1];
for(int i=0;i<=n;i++)f[i]=0;
bktr(1,n);
return 0;
}
void bktr(int k, int l){
if(solutie(k,l))afiseaza(l);
else
for(int i=1;i<=l;i++)if(f[i]==0)
{
a[k]=i;
f[i]=1;
bktr(k+1,l);
f[i]=0;
}
}
bool solutie(int k,int l){return k-1==l;}
void afiseaza(int l){
for(int i=1;i<=l;i++)
fout<<a[i]<<" ";
fout<<"\n";
}