Pagini recente » Cod sursa (job #3360590) | Cod sursa (job #3361262) | Cod sursa (job #3362960) | Cod sursa (job #3360589) | Cod sursa (job #3362869)
#include <iostream>
const int MAXN = 8;
const int NIL = 0;
int nextp[MAXN + 1], prevp[MAXN + 1], v[MAXN];
int n;
FILE *fin, *fout;
void bkt(int poz) {
int i;
if (poz == n) {
for (i = 0; i < n; i++) {
fprintf(fout, "%d ", v[i]);
}
fprintf(fout, "\n");
} else {
i = nextp[0];
while (i != NIL) {
v[poz] = i;
prevp[nextp[i]] = prevp[i];
nextp[prevp[i]] = nextp[i];
bkt(poz + 1);
prevp[nextp[i]] = nextp[prevp[i]] = i;
i = nextp[i];
}
}
}
int main()
{
int i;
fin = fopen("permutari.in", "r");
fscanf(fin, "%d", &n);
fclose(fin);
for (i = 1; i <= n; i++) {
prevp[i] = i - 1;
nextp[i] = i + 1;
}
nextp[0] = 1;
nextp[n] = NIL;
fout = fopen("permutari.out", "w");
bkt(0);
fclose(fout);
return 0;
}