Cod sursa(job #1881938)

Utilizator ifrimencoAlexandru Ifrimenco ifrimenco Data 16 februarie 2017 20:51:50
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
#define nmax 100001

using namespace std;

vector <int> v[nmax];
vector <int> postordine;
int viz[nmax];
void DFS(int x)
{
    int i;
    viz[x]=1;
    for (i=0;i<v[x].size();++i)
    {
        if (!viz[v[x][i]])
            DFS(v[x][i]);
    }
    postordine.push_back(x);
}
int main()
{
    ifstream f("sortaret.in");
    ofstream g("sortaret.out");
    int i, j, a, b, n, m;
    f >> n >> m;
    for (i=1;i<=m;++i)
    {
        f >> a >> b;
        v[a].push_back(b);
    }
    for (i=1;i<=n;++i)
        if (!viz[i]) DFS(i);
    vector <int>::reverse_iterator it;
    for (it=postordine.rbegin();it!=postordine.rend();++it)
    {
        g << *it << " ";
    }
     return 0;
}