Pagini recente » Cod sursa (job #2777764) | Cod sursa (job #2195631) | Cod sursa (job #2028429) | Cod sursa (job #326145) | Cod sursa (job #478427)
Cod sursa(job #478427)
#include <stdio.h>
#include <stdlib.h>
void print(int *v, int n, FILE *g)
{
int i;
for (i = 0; i < n; i++)
fprintf(g, "%d ", v[i]);
fprintf(g, "\n");
}
int valid(int *v, int k)
{
int i;
for (i = 0; i < k; i++)
if (v[i] == v[k]) return 0;
return 1;
}
void back(int *v, int n, int k, FILE *g)
{
int i;
if (k == n)
{
print(v, n, g);
return;
}
for (i = 1; i <= n ; i++)
{
v[k] = i;
if (valid(v, k)) back(v, n, k + 1, g);
}
}
int main()
{
int n;
FILE *f, *g;
f = fopen("permutari.in", "r");
g = fopen("permutari.out", "w");
fscanf(f, "%d", &n);
int *v = (int *)malloc(sizeof(int) * n);
back(v, n, 0, g);
fclose(f);
fclose(g);
return 0;
}