Cod sursa(job #2150336)

Utilizator raluvladRaluca Vlad raluvlad Data 3 martie 2018 14:44:00
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <vector>

using namespace std;

int n,m,use[50005],a[50000],ct;
vector <int> v[50005];

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

void Read()
{
    int x,y;
    in>>n>>m;
    for(int i=1;i<=m;i++)
    {
        in>>x>>y;
        v[x].push_back(y);
    }
}

void DFS(int nod)
{
    use[nod]=1;
    for(unsigned int i=0;i<v[nod].size();i++)
    {
        int vecin = v[nod][i];
        if(use[vecin]==0)
            DFS(vecin);
    }
    a[ct]=nod; ct++;
}

int main()
{
    int i;
    Read();
    for(i=1;i<=n;i++)
        if(use[i]==0)
            DFS(i);
    for(i=ct-1;i>=0;i--)
        out<<a[i]<<' ';
    out<<'\n';
    return 0;
}