#include #include #define MAX_N 10240 // massimo numero di nodi che potrebbero capitarmi using namespace std; vector ListaDiAdiacenza[MAX_N]; int Visitato[MAX_N]; // vettore che segna se il nodo e' stato visitato int OrdineNodi[MAX_N]; // vettore con i nodi in ordine inverso dal pozzo alla sorgente int N, temp; void leggi() { int M, a, b; cin >> N >> M; for (int i=0; i> a >> b; a--, b--; ListaDiAdiacenza[a].push_back(b); } } void visitatopo(int nodo) // procedura che visita (in profondita' ricorsiva) segnandosi i nodi man mano che chiude { if (Visitato[nodo] > 0) { // se ho gia' visitato il nodo, esco return; } Visitato[nodo] = 1; // visito il nodo for (int i=0; i=0; i--) { cout << OrdineNodi[i]+1 << " "; } cout << endl; } int main() { leggi(); temp=0; for (int i=0; i