Cod sursa(job #2488422)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 6 noiembrie 2019 21:33:16
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,i,j,m,x,y,t[50001];
vector <int> v[50001],sol;
void dfs(int x,int niv){
    t[x]=-1;
    for(int i=0;i<v[x].size();i++)
        if(t[v[x][i]]>0)
            dfs(v[x][i],niv+1);
    sol.push_back(x);
}
int main(){
    fin>>n>>m;
    for(i=1;i<=m;i++){
        fin>>x>>y;
        v[x].push_back(y);
        t[y]++;
    }
    for(i=1;i<=n;i++)
        if(t[i]==0)
            dfs(i,1);
    for(i=sol.size()-1;i>=0;i--)
        fout<<sol[i]<<" ";
    return 0;
}