Cod sursa(job #260862)
Utilizator | Data | 17 februarie 2009 17:22:58 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include<stdio.h>
#define nmax 10
int a[nmax],viz[nmax],n;
void back(int);
void afis();
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
back(1);
return 0;
}
void back(int k)
{
for(int i=1;i<=n;++i)
{
a[k]=i;
if (!viz[i])
if (k==n)
afis();
else
{
++viz[i];
back(k+1);
--viz[i];
}
}
}
void afis()
{
for(int i=1;i<=n;++i)
printf("%d ",a[i]);
printf("\n");
}