Cod sursa(job #2115562)

Utilizator Andrei2000Andrei Mihailescu Andrei2000 Data 26 ianuarie 2018 21:28:13
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax=50002;

vector <int> G[nmax];
queue <int> Q;

int n,m,v[nmax];

int main()
{
    int a,b;
    fin>>n>>m;
    for(int i=1;i<=m;++i){
        fin>>a>>b;
        G[a].push_back(b);
        v[b]++;
    }
    for(int i=1;i<=n;++i)if(!v[i])Q.push(i);
    while(!Q.empty()){
        fout<<Q.front()<<' ';
        for(auto nn: G[Q.front()])
            if(!--v[nn])Q.push(nn);
        Q.pop();
    }
    fout<<'\n';
    return 0;
}