Pagini recente » Cod sursa (job #823205) | Cod sursa (job #2622442) | Cod sursa (job #2185508) | Cod sursa (job #236401) | Cod sursa (job #3245628)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream gout("permutari.out");
bool valid(int sol[],int k)
{
for(int i=1; i<k; i++)if(sol[i]==sol[k])return false;
return true;
}
void afis(int sol[],int n)
{
for(int i=1; i<=n; i++)gout<<sol[i]<<' ';
gout<<'\n';
}
void backtracking(int n)
{
int v[n+1];
int k=1;
v[k]=0;
while(k>0)
{
bool gasit=false;
while(gasit==false&&v[k]<n)
{
v[k]++;
gasit=valid(v,k);
}
if(gasit)if(k==n)afis(v,n);
else v[++k]=0;
else k--;
}
}
int main()
{
int n;
fin>>n;
backtracking(n);
}