Cod sursa(job #2723115)

Utilizator NashikAndrei Feodorov Nashik Data 13 martie 2021 16:05:45
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
//#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int viz[50005],rasp[50005],f[50005],cnt;
vector <int> v[50005];
void dfs(int nod){
    viz[nod]=1;
    rasp[++cnt]=nod;
    for(auto u:v[nod]){
        f[u]--;
        if(f[u]==0 and viz[nod]==0){
            dfs(u);
        }
    }
}
int main()
{
    ifstream cin("sortaret.in");
    ofstream cout("sortaret.out");
    int n,m,a,b;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>a>>b;
        v[a].push_back(b);
        f[b]++;
    }
    for(int i=1;i<=n;i++){
        if(f[i]==0 and viz[i]==0){
            dfs(i);
        }
    }
    for(int i=1;i<=n;i++){
        cout<<rasp[i]<<" ";
    }
    return 0;
}