Pagini recente » Cod sursa (job #3255504) | Cod sursa (job #176717) | Cod sursa (job #756120) | Cod sursa (job #2105593) | Cod sursa (job #145855)
Cod sursa(job #145855)
#include<stdio.h>
int st[120],n,i;
int 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()
{
int i;
for (i=1;i<=n;i++)
printf("%d ",m[st[i]]);
printf("\n");
}
void backtraking()
{
int 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("%d",&n);
for (i=1;i<=n;i++) m[i]=i;
backtraking();
}