Cod sursa(job #2269643)

Utilizator crion1999Anitei cristi crion1999 Data 26 octombrie 2018 12:19:36
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream fi("sortaret.in");
ofstream fo("sortaret.out");

vector<int> topo;
vector<int> graph[50000];
bool visited[50000];

void DFS(int node)
{
    for(auto i:graph[node])
    {
        if(!visited[i])
        {
            topo.push_back(i);
            visited[i] = 1;
            DFS(i);
        }
    }
}

int main()
{
    int n, m,a,b;
    fi>>n>>m;
    for(int i = 1; i <= m; ++i)
    {
        fi>>a>>b;
        graph[a].push_back(b);
    }
    for(int i = 1; i <= n; ++i)
    {
        if(!visited[i])
        {
            visited[i] = 1;
            topo.push_back(i);
            DFS(i);
        }
    }
    for(auto i:topo)
    {
        fo<<i<<' ';
    }
}