Pagini recente » Cod sursa (job #1389661) | Cod sursa (job #2251488) | Cod sursa (job #66377) | Cod sursa (job #3280369) | Cod sursa (job #2604693)
#include <stdio.h>
#include <stdlib.h>
#define length 10
int n;
int perm[length];
int next(int k) {
if (perm[k] < n){
perm[k]++;
return 1;
}
else
return 0;
}
int verif(int k) {
int i;
for (i = 1; i < k; i++)
if (perm[i] == perm[k])
return 0;
return 1;
}
void backTrack(int k, FILE* out) {
if (k == n + 1){
for (int i = 1; i <= n; i++)
fprintf(out, "%d ", perm[i]);
fprintf(out, "\n");
}
else {
perm[k] = 0;
while (next(k)){
if (verif(k))
backTrack(k + 1, out);
}
}
}
int main() {
FILE* in = fopen("permutari.in", "r");
FILE* out = fopen("permutari.out", "w");
fscanf(in, "%d", &n);
n %= 8;
backTrack(1, out);
return 0;
}