Pagini recente » Cod sursa (job #102464) | Cod sursa (job #2918571) | Cod sursa (job #1149004) | Cod sursa (job #1711252) | Cod sursa (job #1019825)
#include <stdio.h>
int array[12];
FILE *f;
FILE *g;
int verificare (int pos)
{
int i;
int ok=1;
for (i=1;i<pos;i++) {if (array[i]==array[pos]) {ok=0;break;}}
return ok;
}
void printare(int n)
{
int i;
for (i=1;i<=n;i++) fprintf(g,"%d ",array[i]);
fprintf(g,"\n");
}
void backtrack(int pos,int n)
{
if (pos > n) printare(n);
else
{
int i;
for (i=1;i<=n;i++)
{
array[pos]=i;
if (verificare(pos)==1) backtrack(pos+1,n);
}
}
}
int main()
{
int i,n;
f=fopen("permutari.in","r");
g=fopen("permutari.out","w");
for (i=1;i<=n;i++) array[i]=0;
fscanf(f,"%d",&n);
backtrack(1,n);
return 0;
}