Pagini recente » Cod sursa (job #1683625) | Cod sursa (job #1784102) | Cod sursa (job #2360238) | Cod sursa (job #2590926) | Cod sursa (job #1756664)
#include <cstdio>
using namespace std;
int n,a[10];
bool continuare(int k);
bool solutie(int k);
void afisare(int k);
void backtrack(int k)
{
int i;
for (i=1; i<=n; i++)
{
a[k]=i;
if (continuare(k))
{
if (solutie(k)) afisare(k);
else backtrack(k+1);
}
}
}
bool continuare(int k)
{
int i;
for (i=1; i<=k-1; i++) if (a[i]==a[k]) return 0;
return 1;
}
bool solutie(int k)
{
if (k==n) return 1;
return 0;
}
void afisare(int k)
{
int i;
for (i=1; i<=k; i++) printf("%d ",a[i]);
printf("\n");
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
backtrack(1);
return 0;
}