Cod sursa(job #2663144)

Utilizator yoanaIoana Grigore yoana Data 25 octombrie 2020 14:35:38
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

vector<int>n;
vector<vector<int>>g(50001);//matricea de adiacenta
vector<int>viz(50001);//vector noduri vizitate

void dfs(int n)
{
    viz[n] = 1;
    for(int i=1; i<=g[n].size(); i++)
        if(viz[g[n][i]]==0)
            dfs(g[n][i]);
    nod.push_back(n);
}

int main()
{
    int nr_varfuri,nr_arce,x,y;
    cin>>nr_varfuri>>nr_arce;

    for(int i=1; i<=nr_arce; i++)
    {
        cin>>x>>y;
        g[x].push_back(y);
    }

    for(int i=1;i<=nr_varfuri; i++)

        if(viz[i]==0)
            dfs(i);

    for(int i=nod.size(); i>=1; i--)
        cout<<n[i]<<" ";
    return 0;
}