Cod sursa(job #1922205)

Utilizator DysKodeTurturica Razvan DysKode Data 10 martie 2017 16:23:55
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

#define f first
#define s second

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

list< int > G[ 50010 ];
int i,j,n,m,x,y,grad[50010];
queue < int > Q;

int main()
{

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

    for( i = 1 ; i <= n ; i++ )
    {
        if( grad[ i ] == 0 )
            Q.push( i );
    }

    while( Q.size() )
    {
        fout<<Q.front()<<' ';
        for( auto it : G[ Q.front() ] )
        {
            grad[ it ]--;
            if( grad[ it ] == 0 )
                Q.push( it );
        }
        Q.pop();
    }

return 0;
}