Pagini recente » Cod sursa (job #2392511) | Cod sursa (job #2666280) | Cod sursa (job #2615226) | Cod sursa (job #9701) | Cod sursa (job #387392)
Cod sursa(job #387392)
#include <cstdio>
int n,sol[16];
bool marcat[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]
if(!marcat[i])
{
sol[p] = i;
marcat[i] = true;
bkt(p+1);
marcat[i] = false;
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
bkt(1);
return 0;
}