Cod sursa(job #2485245)

Utilizator mihai2003LLL LLL mihai2003 Data 1 noiembrie 2019 10:51:00
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>
#include <queue>

const int NMAX=50001;
std::queue<int>q;
std::vector<int>succ[NMAX];
int pred[NMAX];
bool viz[NMAX];
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");

int main(){
    int n,m;
    in>>n>>m;
    for(int i=1,x,y;i<=m;i++)
        in>>x>>y,succ[x].push_back(y),pred[y]++;
    for(int i=1;i<=n;i++)
        if(pred[i]==0)
            q.push(i),viz[i]=1;
    while(!q.empty()){
        int top=q.front();
        q.pop();
        for(int x:succ[top]){
            pred[x]--;
            if(pred[x]==0)
                q.push(x);
        }
        out<<top<<" ";
    }
    return 0;
}