Pagini recente » Cod sursa (job #375857) | Cod sursa (job #491657) | Cod sursa (job #487703) | Cod sursa (job #1107223) | Cod sursa (job #145850)
Cod sursa(job #145850)
#include<stdio.h>
long st[120],n,i;
long m[100];
int valid(int k)
{
int i;
for (i=1;i<k;i++)
if (st[k]==st[i]) return 0;
return 1;
}
void solutie()
{
long i;
for (i=1;i<=n;i++)
printf("%ld ",m[st[i]]);
printf("\n");
}
void backtraking()
{
long up,k;
k=1;
st[k]=0;
while (k>0)
{
up=0;
while((!up)&&(st[k]<n))
{
st[k]++;
if (valid(k)) up=1;
}
if (up)
if (k==n) solutie() ;
else
{ k++;
st[k]=0;
}
else k--;
}
}
void main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++) m[i]=i;
backtraking();
}