Pagini recente » Cod sursa (job #794303) | Cod sursa (job #1549311) | Cod sursa (job #2893588) | Cod sursa (job #1239603) | Cod sursa (job #1425094)
#include <iostream>
#include <fstream>
#define NMAX 8
using namespace std;
const char IN[] = "permutari.in", OUT[] = "permutari.out";
int N;
int perm[NMAX + 1];
bool check(int k) {
for (int i = 1; i < k; i++) if (perm[i] == perm[k]) return false;
return true;
}
inline void printSolution() {
for (int i = 1; i <= N; ++i) printf("%d ", perm[i]);
printf("\n");
}
void permutari(int k) {
if (k == N + 1) { printSolution(); return; }
for (int i = 1; i <= N; i++) {
perm[k] = i;
if (!check(k)) continue;
permutari(k + 1);
}
}
int main() {
freopen(IN, "r", stdin);
scanf("%d", &N);
FILE *f = freopen(OUT, "w", stdout);
if (!f) return 0;
permutari(1);
fclose(stdout);
return 0;
}