Pagini recente » Cod sursa (job #1131877) | Cod sursa (job #1596839) | Cod sursa (job #1132929) | Cod sursa (job #2448966) | Cod sursa (job #1493844)
#include <stdio.h>
int n;
int is_valid(int stack[], int peak)
{
for (int i = 0; i < peak; ++ i)
if (stack[peak] == stack[i])
return (0);
return (1);
}
void back(int stack[], int peak)
{
for (int i = 1; i <= n; ++ i)
{
stack[peak] = i;
if (is_valid(stack, peak))
{
if (peak == n - 1)
for (int j = 0; j < n; ++ j)
{
if (j == n - 1)
printf("%d\n", stack[j]);
else
printf("%d ", stack[j]);
}
else
back(stack, peak + 1);
}
}
}
int main(void)
{
int stack[10];
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d", &n);
back(stack, 0);
return (0);
}