Cod sursa(job #2179094)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 19 martie 2018 22:34:56
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;


int i,j,m,n,x,y,a,b;
struct tab
{
    vector<int> l;
    int nr;
};
tab t[50005];
queue <int> nod;
int main()
{
    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");
    fin>>n>>m;
    for (i=1;i<=m;i++)
    {
        fin>>a>>b;
        t[a].l.push_back(b);
        t[b].nr++;
    }
    for (i=1;i<=n;i++)
        if (t[i].nr==0) nod.push(i);
    while (!nod.empty())
    {
        x=nod.front();
        fout<<x<<" ";
        while (!t[x].l.empty())
        {
            t[t[x].l.back()].nr--;
            if (t[t[x].l.back()].nr==0) nod.push(t[x].l.back());
            t[x].l.pop_back();
        }
        nod.pop();
    }
    return 0;
}