Cod sursa(job #2327888)

Utilizator ptudortudor P ptudor Data 25 ianuarie 2019 10:02:17
Problema Sortare topologica Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
using  namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n,m,d[1005];
vector <int> L[1005];
priority_queue <int> q;
void BFS()
{
    int nr;
    for (int pas=1;pas<=n;pas++)
    {
        nr=-1*q.top();
        q.pop();
         out<<nr<<" ";
        for (auto k:L[nr])
        {
            d[k]--;
            if (d[k]==0)q.push(-k);
        }
    }
    out<<"\n";
}
int main()
{int i,a,b;
    in>>n>>m;
    for (i=1;i<=m;i++)
    {
        in>>a>>b;
        L[a].push_back(b);
        d[b]++;
    }
    for (i=1;i<=n;i++)if (d[i]==0)q.push(-i);
    BFS();
    out.close();
    in.close();
    return 0;
}