Pagini recente » Cod sursa (job #2150274) | Cod sursa (job #3285146) | Cod sursa (job #3227772) | Cod sursa (job #2138947) | Cod sursa (job #780891)
Cod sursa(job #780891)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isOK(int *p, int k)
{
int i;
for (i = 0; i < k; i++)
if (p[i] == p[k])
return 0;
return 1;
}
void print(int *p, int n, FILE *g)
{
int i;
for (i = 0; i < n; i++)
fprintf(g, "%d ", p[i]);
fprintf(g, "\n");
}
void back(int k, int n, int *p, FILE *g)
{
int i;
for (i = 1; i <= n; i++) {
p[k] = i;
if (isOK(p, k)) {
if (k == n - 1)
print(p, n, g);
else
back(k+1, n, p, g);
}
}
}
int main (void)
{
FILE *f, *g;
int n, p[10];
f = fopen("permutari.in", "rt");
fscanf(f, "%d", &n);
fclose(f);
g = fopen("permutari.out", "wt");
memset(p, 0, sizeof(p));
back(0, n, p, g);
fclose(g);
return 0;
}