Pagini recente » Cod sursa (job #2333491) | Cod sursa (job #2656782) | Cod sursa (job #240704) | Cod sursa (job #1536382) | Cod sursa (job #387389)
Cod sursa(job #387389)
#include <cstdio>
int n,sol[16];
void afisare()
{
for(int i=1 ; i<=n ; ++i)
printf("%d ",sol[i]);
printf("\n");
}
bool valid(int p)
{
for(int i=1 ; i<p ; ++i)
if(sol[i] == sol[p])
return false;
return true;
}
void bkt(int p)//completeaza elem de pe pozitia p din sol
{
if(p==n+1)//daca poz pe care ar urma sa o completez ar fi n+1,ar insemna ca am completat deja n, deci am o perm
{
afisare();
return;
}
for(int i=1 ; i<=n ; ++i)//parcurg valorile pe care le poate lua sol[p]
{
sol[p] = i;
if(valid(p))//verific daca sol[p] e compatibil cu sol[1],..,sol[p-1]
bkt(p+1);
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
bkt(1);
return 0;
}