Cod sursa(job #2659708)

Utilizator mascoVlad Facas masco Data 17 octombrie 2020 12:23:23
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

#define MAX1 100005
#define MAX2 400005

using namespace std;

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

vector<int>g[MAX1];
int v[MAX2];

queue<int> q;

int main()
{
    int n,m,i,x,y;

    fin>>n>>m;

    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        g[x].push_back(y);
        v[y]++;
    }

    for(i=1;i<=n;i++)
    {
        if(v[i]==0)
        {
            q.push(i);
        }
    }
    while(!q.empty())
    {
        fout<<q.front()<<" ";
        for(const auto &it : g[q.front()])
        {
            v[it]--;
            if(!v[it])
            {
                q.push(it);
            }
        }
        q.pop();
    }
}