Cod sursa(job #2303065)

Utilizator petru123456789Petru B petru123456789 Data 15 decembrie 2018 15:04:26
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;
vector<int> v[50005];
int s[50005],w,n,m,grad[50005],viz[50005];
void sorttop(int q)
{
    int i;
    viz[q]=1;
    w++;
    s[w]=q;
    for(i=0;i<v[q].size();i++)
    {
        int t=v[q][i];
        if(viz[t]==0)
        {
            sorttop(t);
            //w++;
            //s[w]=t;
        }

    }
}
int main()
{
    ifstream in("sortaret.in");
    ofstream out("sortaret.out");
    in>>n>>m;
    int i,j;
    int x,y;
    for(i=1;i<=m;i++)
    {
        in>>x>>y;
        v[x].push_back(y);
        grad[y]++;
    }
    for(i=1;i<=n;i++)
    {
        if(grad[i]==0)
        {
            sorttop(i);
        }
    }
    //cout<<w<<'\n';
    for(i=1;i<=w;i++)
    {
        out<<s[i]<<' ';
    }
}