Pagini recente » Cod sursa (job #2298130) | Cod sursa (job #2099956) | Cod sursa (job #1590218) | Cod sursa (job #1925637) | Cod sursa (job #766469)
Cod sursa(job #766469)
/*
Generarea permutarilor unei multimi folosind backtracking.
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAXN 8
int n;
int solutie[MAXN];
bool gasit[MAXN];
void afiseaza_permutari () {
int i;
for (i = 1; i <= n; i++)
printf("%d ", solutie[i]);
printf("\n");
}
void genereaza_permutari (int p) {
if (p == n + 1)
afiseaza_permutari();
else {
int i;
for (i = 1; i <= n; i++) {
if (!gasit[i]) {
gasit[i] = 1;
solutie[p] = i;
genereaza_permutari(p + 1);
gasit[i] = 0;
}
}
}
}
int main () {
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d", &n);
genereaza_permutari(1);
return 0;
}