Cod sursa(job #651114)
#include "stdio.h"
#include "malloc.h"
#define MAXLEN 8
typedef unsigned char BYTE;
FILE *f,*g;
BYTE *v,n;
void bk(BYTE nivel)
{
BYTE i,j,ok;
if(nivel == n)
{
for(i = 0;i<n-1;i++)
fprintf(g,"%d ",v[i]);
fprintf(g,"%d\n",v[n-1]);
return;
}
for(i=1;i<=n;i++)
{
ok = 1;
for (j=0;j<nivel;j++)
if(v[j]==i)
ok = 0;
if(ok)
{
v[nivel]=i;
bk(nivel+1);
}
}
}
int main()
{
f = fopen("permutari.in","r");
fscanf(f,"%d",&n);
g = fopen("permutari.out","w");
v = (BYTE *)malloc(MAXLEN*sizeof(BYTE));
if(v == NULL)
return(1);
bk(0);
fclose(f);
fclose(g);
return 0;
}