Pagini recente » Cod sursa (job #2776523) | Cod sursa (job #359410) | Cod sursa (job #632510) | Cod sursa (job #905447) | Cod sursa (job #445505)
Cod sursa(job #445505)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int k=0,n,*st;
FILE *in,*out;
void init()
{
st[k]=0;
}
int next()
{
if (st[k]+1<=n)
{
st[k]++;
return 1;
}
return 0;
}
int sol()
{
if (k==n-1) return 1;
return 0;
}
int valid()
{
int i;
for (i=0;i<k;i++)
if(st[i]==st[k])
return 0;
return 1;
}
void afis()
{
int i;
for (i=0;i<n;i++)
printf("%d ",st[i]);
printf("\n");
}
int main()
{
in=fopen("permutari.in","r");
out=fopen("permutari.out","w");
int AS,i;
fscanf(in,"%d",&n);
st=malloc(n*sizeof(int));
init();
while (k>=0)
{
do {} while ( (AS=next()) && (!valid()) );
if (AS)
{
//afis();
//getchar();
if (sol())
{
afis();
for (i=0;i<n;i++)
fprintf(out,"%d ",st[i]);
fprintf(out,"\n");
}
else
{
k++;
init();
}
}
else
k--;
}
//getchar();
fclose(in);
fclose(out);
return 0;
}