Pagini recente » Cod sursa (job #3182590) | Cod sursa (job #2477158) | Cod sursa (job #2690963) | Cod sursa (job #2496806) | Cod sursa (job #2633223)
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n, m, viz[50000], s[50000];
vector <int> g[50000];
stack <int> stiva;
void topsort ( int nod ) {
viz[nod] = 1;
for ( unsigned i = 0; i < g[nod].size(); i++ )
if ( !viz[ g[nod][i] ] )
topsort ( g[nod][i] );
stiva.push( nod );
}
int main()
{
int x, y;
fin >> n >> m;
for ( int i = 1; i <= m; i++ ) {
fin >> x >> y;
g[x].push_back(y);
}
for ( int i = 1; i <= n; i++ )
if ( !viz[i] )
topsort( i );
for ( int i = 1; i <= n; i++ ) {
s[i] = stiva.top();
stiva.pop();
fout << s[i] << " ";
}
return 0;
}