Cod sursa(job #2425683)

Utilizator andreeacristianaAlbu Andreea-Cristiana andreeacristiana Data 24 mai 2019 23:29:41
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");

int vizitat[50003];
vector <int> myGraph[50003];
stack <int> myStack;

void dfs(int nod)
{
    vizitat[nod]=1;
    int lim=myGraph[nod].size();
    for(int i=0;i<lim;i++)
        if(vizitat[myGraph[nod][i]]==0)
        dfs(myGraph[nod][i]);
    myStack.push(nod);
}

int main()
{int n,m,i,x,y;
cin>>n>>m;
for(i=1;i<=m;i++)
{
    cin>>x>>y;
    myGraph[x].push_back(y);
}
    for(i=1;i<=n;i++)
        if(vizitat[i]==0)
        dfs(i);
    for(i=1;i<=n;i++)
    {
        cout<<myStack.top()<<" ";
        myStack.pop();
    }
    return 0;
}