Cod sursa(job #1212050)

Utilizator PlatenitesVoicu Cristian Platenites Data 23 iulie 2014 18:33:52
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");
int viz[50001],n,m,a,b,q[50001],nr,dupa[50001];
vector <int> v[50001];
void dfs(int x)
{
    viz[x]=1;
    for(int i=0;i<v[x].size();i++)
        if(viz[v[x][i]]==0)
            dfs(v[x][i]);
    q[++nr]=x;
}
int main()
{
    f>>n>>m;
    for(int i=1;i<=n;i++)
    {
        f>>a>>b;
        v[a].push_back(b);
        dupa[b]++;
    }
    for(int i=1;i<=n;i++)
        if(dupa[i]==0)
            dfs(i);
    for(int i=nr;i>=1;i--)
        g<<q[i]<<" ";
    return 0;
}