Cod sursa(job #2286784)

Utilizator Vlad3108Tir Vlad Ioan Vlad3108 Data 20 noiembrie 2018 19:10:30
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
vector<int> E[50005];
int viz[50005];
int n,m;
stack<int> Ans;
void dfs(int k){
    viz[k]=1;
    for(auto it:E[k])
        if(!viz[it])
            dfs(it);
    Ans.push(k);
}
void SortT(){
    for(int i=1;i<=n;++i)
        viz[i]=0;
    for(int i=1;i<=n;++i)
        if(!viz[i])
            dfs(i);
    while(!Ans.empty()){
        printf("%d ",Ans.top());
        Ans.pop();
    }
}
int main(){
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;++i){
        int st,dr;
        scanf("%d %d",&st,&dr);
        E[st].push_back(dr);
    }
    SortT();
	return 0;
}