Cod sursa(job #3003500)

Utilizator SSKMFSS KMF SSKMF Data 15 martie 2023 19:22:20
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream cin ("sortaret.in");
ofstream cout ("sortaret.out");

vector < vector <int> > adiacenta;
vector <int> sortat , vizitat;

void Parcurgere (int nod_actual)
{
    vizitat[nod_actual] = 1;

    for (auto nod_vecin : adiacenta[nod_actual])
        if (!vizitat[nod_vecin])
            Parcurgere(nod_vecin);

    sortat.push_back(nod_actual);
}

int main ()
{
    int noduri , muchii , varf_1 , varf_2;
    cin >> noduri >> muchii;

    adiacenta.resize(noduri + 1);
    for (int indice = 1 ; indice <= muchii ; indice++)
        cin >> varf_1 >> varf_2 , adiacenta[varf_1].push_back(varf_2);

    vizitat.resize(noduri + 1);
    for (int nod = 1 ; nod <= noduri ; nod++)
        if (!vizitat[nod])
            Parcurgere(nod);

    for (int indice = noduri - 1 ; indice >= 0; indice--)  
        cout << sortat[indice] << ' ';

    cout.close(); cin.close();
    return 0;
}