Cod sursa(job #2722126)

Utilizator robert.barbu27robert barbu robert.barbu27 Data 12 martie 2021 16:39:14
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define INF 2e9
#define NMAX 150005
#define PMAX 3500
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
vector<int> adj[50005];
int grad[50005],Q[50005];
void solve()
{
    for(int i=1;i<=n;i++)
    {
        if(grad[i]==0)
        {
            Q[++Q[0]]=i;
        }
    }
    for(int i=1;i<=n;i++)
    {
        int node=Q[i];
        for(int j=0;j<adj[node].size();j++)
        {
            int vec=adj[node][j];
            grad[vec]--;
            if(grad[vec]==0)
            {
                Q[++Q[0]]=vec;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        g<<Q[i]<<" ";
    }
}
int main()
{
    f>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        f>>x>>y;
        adj[x].pb(y);
        grad[y]++;
    }
    solve();









}