Cod sursa(job #2424933)

Utilizator dana.dascalescuDana Dascalescu dana.dascalescu Data 23 mai 2019 23:37:13
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int N, M, A, B;

void DFS(int nod, vector<vector<int> > &L, vector<bool> &visited, stack<int> &S)
{
    visited[nod] = true;
    for(auto i : L[nod])
        if(!visited[i])
            DFS(i,L,visited,S);
    S.push(nod);
}

int main()
{
    fin>>N>>M;
    vector<vector<int> > L(N+1);
    for(int i = 0; i < M; i++)
    {
        fin>>A>>B;
        L[A].push_back(B);
    }
    stack<int> S;
    vector<bool> visited(N+1,false);
    for(int i = 1; i <=  N; i++)
        if(!visited[i])
            DFS(i, L, visited, S);

    while(!S.empty())
    {
        fout<<S.top()<<' ';
        S.pop();
    }
    return 0;
}