Cod sursa(job #3004648)

Utilizator DevilonnetPescar Denis Devilonnet Data 16 martie 2023 15:08:28
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>
#include<stack>
#include<vector>
using namespace std;

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

int n,m,P[50001];
vector<vector<int>>G(200001),GT(200001);
stack<int>S;

void DFS(int nod)
{
    P[nod]=1;
    for(auto x:G[nod])
        if(!P[nod])
            DFS(x);
    S.push(nod);
}

void DFS2(int nod)
{
    P[nod]=1;
    for(auto x:GT[nod])
        if(!P[x])  
            DFS2(x);
}

int main()
{
    cin>>n>>m;

    for(int i=1,x,y;i<=m;++i)
    {
        cin>>x>>y;
        G[x].push_back(y);
        GT[y].push_back(x);
    }
    for(int i=1;i<=n;++i)
        if(!P[i])
            DFS(i);

    for(int i=1;i<=n;++i)
        P[i]=0;

    while(!S.empty())
    {
        cout<<S.top()<<" ";
        S.pop();

    }

}