Pagini recente » Cod sursa (job #726141) | Cod sursa (job #425415) | Cod sursa (job #255513) | Cod sursa (job #2732290) | Cod sursa (job #482514)
Cod sursa(job #482514)
#include <cstdio>
#include <vector>
#define NOD_MAX 500001
using namespace std;
vector <int> graf[NOD_MAX];
int N, M, viz[NOD_MAX], sol[NOD_MAX], p;
void reading(){
scanf( "%d %d", &N, &M );
int nod1, nod2;
for( int i=1 ; i<=M ; ++i ){
scanf( "%d %d", &nod1, &nod2 );
graf[nod1].push_back(nod2);
}
}
void sort_top_dfs( int s ){
viz[s] = 1;
for( unsigned int i=0 ; i< graf[s].size() ; ++i ){
if( !viz[s] ){
sort_top_dfs( graf[s][i] );
}
}
sol[++p] = s;
}
void writing(){
for( int i=N ; i>=1 ; --i ){
printf( "%d " , sol[i] );
}
}
int main(){
freopen( "sortaret.in" , "r" , stdin );
freopen( "sortaret.out" , "w" , stdout );
reading();
for( int i=1 ; i<=N ; i++ ){
if( !viz[i] ){
sort_top_dfs(i);
}
}
writing();
return 0;
}