Pagini recente » Cod sursa (job #439657) | Cod sursa (job #213261) | Cod sursa (job #2732577) | Cod sursa (job #1598777) | Cod sursa (job #1902377)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int perm[10000], n;
bool corect (int nivel) {
for (int i=1; i<nivel; i++) {
// comparam elementul nou adaugat ( perm[nivel] ) cu elementele precedente
if (perm[i] == perm[nivel]) return 0;
}
return 1;
}
void bkt (int nivel) {
for (int i=1; i<=n; i++) {
perm[nivel] = i;
// punem in vector un nr de la 1 la n
if (corect(nivel)) {
// daca vectorul e o permutare buna
if (nivel == n) {
// daca vectorul reprezinta o solutie afisam vectorul
for (int i=1; i <= n; i++) fout << perm[i] << ' ';
fout << '\n';
}
else {
// in caz contrar continuam sa umplem vectorul
bkt(nivel+1);
}
}
}
}
int main()
{
fin >> n;
bkt(1);
return 0;
}