Pagini recente » Cod sursa (job #812107) | Cod sursa (job #2441069) | Cod sursa (job #1756296) | Cod sursa (job #2825801) | Cod sursa (job #2253247)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
#define NMAX 50005
int Grad[ NMAX ];
vector < int > V[ NMAX ];
queue < int > Q;
int main () {
freopen( "sortaret.in", "r", stdin );
freopen( "sortaret.out", "w", stdout );
int n, m, i, j, x, y, nod;
scanf( "%d%d", &n,&m );
while ( m-- ) {
scanf( "%d%d", &x,&y );
V[ x ].push_back( y );
Grad[ y ]++;
}
for ( i = 1; i <= n; ++i ) {
if ( Grad[ i ] == 0 ) Q.push( i );
}
while ( !Q.empty() ) {
nod = Q.front(); Q.pop();
printf( "%d ", nod );
for ( i = 0; i < V[ nod ].size(); ++i ) {
Grad[ V[ nod ][ i ] ]--;
if ( Grad[ V[ nod ][ i ] ] == 0 ) Q.push( V[ nod ][ i ] );
}
}
return 0;
}