Pagini recente » Cod sursa (job #1182593) | Cod sursa (job #872125) | Cod sursa (job #490388) | Cod sursa (job #2449300) | Cod sursa (job #520992)
Cod sursa(job #520992)
#include <stdio.h>
#include <stdlib.h>
int n;
int* to_print;
char* taken;
int len;
void read_data()
{
scanf("%d", &n);
}
void print_one()
{
int i;
if (len == n)
{
for (i = 0; i < n; ++i)
printf("%d ", to_print[i]);
printf("\n");
}
else
{
for (i = 0; i < n; ++i)
{
if (!taken[i])
{
to_print[len] = i+1;
taken[i] = 1;
len++;
print_one();
len--;
taken[i] = 0;
}
}
}
}
void print_data()
{
taken = calloc((n+1)*sizeof(char), 4);
to_print = malloc(n*sizeof(int));
len = 0;
print_one();
free(to_print);
free(taken);
}
int main()
{
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
read_data();
print_data();
return 0;
}