Pagini recente » Cod sursa (job #868485) | Cod sursa (job #1048920) | Cod sursa (job #240763) | Cod sursa (job #2889165) | Cod sursa (job #2313641)
#include <bits/stdc++.h>
#define N 50005
using namespace std;
ifstream fin( "sortaret.in" );
ofstream fout( "sortaret.out" );
vector <int> G[N];
int n, m;
bool viz[N];
stack <int> S;
void read()
{
int i, x, y;
fin >> n >> m;
for ( i = 1; i <= m; ++i )
{ fin >> x >> y;
G[x].push_back(y);
}
fin.close();
}
void DFS( int x )
{
int i;
viz[x] = 1;
for ( i = 0; i < G[x].size(); ++i )
if ( !viz[G[x][i]] )
DFS(G[x][i]);
S.push(x);
}
void SortareTopologica()
{
int i;
for ( i = 1; i <= n; ++i )
if ( !viz[i] )
DFS(i);
while ( !S.empty() )
{ fout << S.top() << ' ';
S.pop();
}
}
int main()
{ read();
SortareTopologica();
fout.close();
return 0;
}