Pagini recente » Cod sursa (job #2130245) | Cod sursa (job #2298626) | Cod sursa (job #217151) | Cod sursa (job #637341) | Cod sursa (job #2531809)
#include <vector>
#include <cstdio>
using namespace std;
const int NMAX = 5e4 ;
vector < int > ad [ NMAX + 5 ] ;
int sol [ NMAX + 5 ] , viz [ NMAX + 5 ] , poz ;
void dfs ( int node )
{
viz [ node ] = 1 ;
int i , found = 0 ;
for ( i = 0 ; i < ad [ node ].size () ; ++ i )
if ( ! viz [ ad [ node ] [ i ] ] )
dfs ( ad [ node ] [ i ] ) ;
sol [ ++ poz ] = node ;
}
int main()
{
freopen ( "sortaret.in" , "r" , stdin ) ;
freopen ( "sortaret.out" , "w" , stdout ) ;
int n , m , i , x , y ;
scanf ( "%d%d" , & n , & m ) ;
for ( i = 1 ; i <= m ; ++ i )
{
scanf ( "%d%d" , & x , & y ) ;
ad [ x ].push_back ( y ) ;
}
for ( i = 1 ; i <= n ; ++ i )
if ( ! viz [ i ] )
dfs ( i ) ;
for ( i = n ; i >= 1 ; -- i )
printf ( "%d " , sol [ i ] ) ;
return 0;
}