#include #include using namespace std; // funzione che inizializza la matrice vector > init_m(vector > m, int n_nodi) { m.resize(n_nodi); for(int i=0; i > adj_m; // matrice grafo vector > vis_m; // matrice archi visitati int N, M, A, B; // N=numero di nodi; M=numero di archi; A=nodo di partenza; B=nodo di arrivo // funzione per la ricerca del cammino vector find_path(vector > am, vector > vm, int from, int va, vector p) { p[va]=from+1; // cammino percorso if(va == M && from == B-1) // se ho visitato tutti gli archi e l'ultimo nodo e il nodo B { return p; // ritorna il cammino } else { for(int j=0; j> N >> M >> A >> B; vector path(M*2,0); adj_m=init_m(adj_m,N); // inizializzo matrice grafo a 0 vis_m=init_m(vis_m,N); // inizializzo matrice archi visitati a 0 // inizializzo la matrice in base all'input int a, b; for(int i=0; i> a >> b; adj_m[a-1][b-1]=1; adj_m[b-1][a-1]=1; } fin.close(); path=find_path(adj_m, vis_m, A-1, 0, path); // cerco il percorso ofstream fout("output.txt"); int scrivi=0; for(int i=0; i