Cod sursa(job #2550933)

Utilizator Chirac_MateiChiriac Matei Chirac_Matei Data 19 februarie 2020 11:53:41
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n,m,i,x,y;
queue <int> q;
struct nodS
{
    vector <int> vecini;
    int ingrade=0;
} nod[50005];
int main()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        nod[x].vecini.push_back(y);
        nod[y].ingrade++;
    }
    for(i=1;i<=n;i++)
        if(!nod[i].ingrade)
            q.push(i);

    while(!q.empty())
    {
        int curr = q.front();
        q.pop();

        fout<<curr<<' ';
        for(auto it : nod[curr].vecini)
        {
            nod[it].ingrade--;
            if(!nod[it].ingrade)
                q.push(it);
        }
    }
    return 0;
}