Coroană pls?
#include <fstream>
using namespace std;
ifstream f_in("drum_hamiltonian.in");
ofstream f_out("drum_hamiltonian.out");
int main()
{
bool matr_ad[11][11] = { 0 };
int noduri;
f_in >> noduri;
int nodX, nodY;
while (f_in >> nodX >> nodY)
matr_ad[nodX][nodY] = 1;
int backtrack = 2;
int soluție[11] = { 0, 1 };
bool noduri_vizitate[11] = { 0 };
noduri_vizitate[1] = 1;
while (backtrack) {
if (backtrack == noduri + 1) {
for (int index = 1; index <= noduri; index++)
f_out << soluție[index] << ' ';
return 0;
}
else {
if (soluție[backtrack] <= noduri) {
soluție[backtrack]++;
if (matr_ad[soluție[backtrack - 1]][soluție[backtrack]] && !noduri_vizitate[soluție[backtrack]]) {
noduri_vizitate[soluție[backtrack]] = 1;
backtrack++;
}
}
else {
soluție[backtrack] = 0;
if (backtrack == 2) {
noduri_vizitate[soluție[1]] = 0;
soluție[1]++;
noduri_vizitate[soluție[1]] = 1;
}
else
backtrack--;
noduri_vizitate[soluție[backtrack]] = 0;
}
}
}
f_out << 0;
return 0;
}