Cod sursa(job #2656930)

Utilizator NashikAndrei Feodorov Nashik Data 9 octombrie 2020 10:42:39
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
//#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
vector <int> v[50005];
queue <int> q;
int f[50005],x;
int main()
{
    int n,m,a,b;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>a>>b;
        v[a].push_back(b);
        //v[b].push_back(a);
        f[b]++;
    }
    for(int i=1;i<=n;i++){
        if(f[i]==0){
            q.push(i);
        }
    }
    while(q.empty()==false){
        x=q.front();
        q.pop();
        cout<<x<<" ";
        for(auto u:v[x]){
            f[u]--;
            if(f[u]==0)
                q.push(u);
        }
    }
    return 0;
}