Pagini recente » Cod sursa (job #1810498) | Cod sursa (job #2248877) | Cod sursa (job #1688241) | Cod sursa (job #120078) | Cod sursa (job #590390)
Cod sursa(job #590390)
#include <stdio.h>
#include <stdlib.h>
void print_perm(int *a, int len)
{
int i;
for (i = 0; i < len; i++)
printf("%d ", a[i]);
printf("\n");
}
int valid_perm(int *a, int len, int index)
{
int i;
for (i = 0; i < index; i++)
{
if (a[i] != a[index])
continue;
return 0;
}
return 1;
}
void permut(int *a, int len, int index)
{
int i;
if (index == len)
print_perm(a, len);
else
{
for (i = 1; i <= len; i++)
{
a[index] = i;
if (valid_perm(a, len, index))
permut(a, len, index + 1);
}
}
}
int main()
{
int n = -1, *a = NULL;
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d", &n);
a = (int*)calloc(n, sizeof(int));
permut(a, n, 0);
free(a);
return 0;
}