Cod sursa(job #2281814)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 12 noiembrie 2018 19:33:13
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <vector>
#include <fstream>
using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

int n,m,x,y,i,k,f[50010];
vector <int>l[50010];
int d[50010],sol[50010];

void dfs(int nod){
    for(int i=0;i<l[nod].size();i++){
        int vecin=l[nod][i];
        if(f[vecin]==0){
            f[vecin]=1;
            dfs(vecin);
        }
    }

    sol[++k]=nod;
}

int main(){
    fin>>n>>m;
    for(;m;m--){
        fin>>x>>y;
        l[x].push_back(y);
        d[y]++;
    }

    for(i=1;i<=n;i++)
        if(d[i]==0)
            f[i]=1,dfs(i);

    for(;k;k--){
        fout<<sol[k]<<" ";
    }

    return 0;
}