Cod sursa(job #2117750)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 29 ianuarie 2018 15:31:46
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 50002
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int> G[nmax],L;
int n,m,viz[nmax],x,y;
void read()
{
    fin>>n>>m;
    for(int i =1 ; i <= m ; i ++)
    {
        fin>>x>>y;
        G[x].push_back(y);
    }
}
void visit(int node)
{
    if(viz[node])
        return;
    viz[node]=1;
    for(int i = 0 ; i < G[node].size();i++)
        visit(G[node][i]);
    L.push_back(node);
}
void solve()
{
    for(int node=1; node <= n ; node++)
        visit(node);
}
void write()
{
    while(!L.empty())
    {
        fout<<L.back()<<" ";
        L.pop_back();
    }

}
int main()
{
     read();
     solve();
     write();
    return 0;
}