Cod sursa(job #161883)
Utilizator | Data | 18 martie 2008 22:09:43 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
# include <stdio.h>
int a[30],n,i;
void tipareste (int i)
{
int j;
for (j=1;j<=i;j++)
printf ("%i ",a[j]);
printf ("\n");
}
int valid (int i)
{
int j;
for (j=1;j<i;j++)
if (a[i]==a[j])
return 0;
return 1;
}
void back (int i)
{
int val;
for (val=1;val<=n;val++)
{
a[i]=val;
if (valid (i))
if (i==n)
tipareste (i);
else
back (i+1);
}
}
int main ()
{
freopen ("permutari.in","r",stdin);
freopen ("permutari.out","w",stdout);
scanf ("%i",&n);
back (1);
return 0;
}