Răspuns :
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;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!