Cod sursa(job #2256064)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 7 octombrie 2018 21:19:53
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n,m;
short ap[50005];
vector <int> lista[50005];
vector <int> s;
void dfs(int node)
{
    ap[node]=1;
    for(int i=0; i<lista[node].size(); i++)
    {
        if(!ap[lista[node][i]])
        {
            dfs(lista[node][i]);
        }
    }
    s.push_back(node);
}
int main()
{
    in >> n >> m;
    for(int i=1; i<=m; i++)
    {
        int a,b;
        in >> a >> b;
        lista[a].push_back(b);
    }
    for(int i=1; i<=n; i++)
    {
        if(!ap[i])
            dfs(i);
    }
    for(int i=s.size()-1; i>=0; i--)
    {
        out << s[i] << ' ';
    }
    return 0;
}