Cod sursa(job #147427)
#include <stdio.h>
#define INF "permutari.in"
#define OUF "permutari.out"
const short NMAX=10;
int main()
{
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
short i,k,n,v[NMAX];
char viz[NMAX]={0};
fscanf(in,"%hd",&n);
k=1;v[k]=0;
while(k>0)
{
viz[v[k]]=0;
do
{
++v[k];
}while(v[k]<=n&&viz[v[k]]);
if(v[k]<=n&&!viz[v[k]])
{
viz[v[k]]=1;
if(k==n)
{
for(i=1;i<=n;++i) fprintf(out,"%hd ",v[i]);
fprintf(out,"\n");
}
else v[++k]=0;
}
else viz[v[k--]]=0;
}
fclose(in);fclose(out);
return 0;
}