Pagini recente » Cod sursa (job #202131) | Cod sursa (job #793476) | Cod sursa (job #690889) | Cod sursa (job #59080) | Cod sursa (job #2943072)
#include <fstream>
#include <algorithm>
#include <vector>
#define MAXN 50000
using namespace std;
ifstream fin( "sortaret.in" );
ofstream fout( "sortaret.out" );
vector <int> graph[MAXN];
vector <int> topologic;
int marked[MAXN];
void dfs( int nod ){
int i, vecin;
marked[nod] = 1;
for( i = 0; i < graph[nod].size(); i++ ){
vecin = graph[nod][i];
if( marked[vecin] == 0 )
dfs( vecin );
}
topologic.push_back( nod );
}
int main(){
int n, m, i, x, y;
fin >> n >> m;
for( i = 0; i < m; i++ ){
fin >> x >> y;
graph[x - 1].push_back(y - 1);
}
for( i = 0; i < n; i++ ){
if( !marked[i] )
dfs(i);
}
reverse( topologic.begin(), topologic.end() );
for( i = 0; i < topologic.size(); i++ )
fout << topologic[i] + 1 << ' ';
return 0;
}