Cod sursa(job #2548312)

Utilizator MihclerioVladimir Chim Mihclerio Data 16 februarie 2020 15:12:03
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);

    int n,m;
    cin>>n>>m;
    vector<int>f(n+3,0);
    vector<int>v[n+3];
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        v[x].push_back(y);
        f[y]++;
    }
    queue<int>q;
    for(int i=1;i<=n;i++)
        if(!f[i]) q.push(i);
    for(int i=1;i<=n;i++)
    {
        int nod=q.front();
        q.pop();
        cout<<nod<<" ";
        for(int j=0;j<v[nod].size();j++)
        {
            int fiu=v[nod][j];
            f[fiu]--;
            if(!f[fiu]) q.push(fiu);
        }
    }

}