Pagini recente » Cod sursa (job #1334063) | Cod sursa (job #1323064) | Cod sursa (job #1223323) | Cod sursa (job #1908353) | Cod sursa (job #3280269)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "sortaret.in" );
ofstream fout ( "sortaret.out" );
#define PB push_back
#define PF push_front
#define cin fin
#define cout fout
const int Nmax = 5e4;
vector<int> adj[Nmax + 1];
bool processed[Nmax + 1], afisat[Nmax + 1];
list<int> l;
void dfs ( int nod ) {
int i, nod2;
for ( i = 0; i < adj[nod].size(); i ++ ) {
nod2 = adj[nod][i];
if ( !processed[nod2] ) {
processed[nod2] = true;
dfs( nod2 );
}
}
if ( !afisat[nod] ) {
l.PB( nod );
afisat[nod] = true;
}
}
int main()
{
int n, m, i, nod1, nod2;
cin >> n >> m;
for ( i = 1; i <= n; i ++ )
processed[i] = false;
for ( i = 0; i < m; i ++ ) {
cin >> nod1 >> nod2;
adj[nod1].PB( nod2 );
}
for ( i = 1; i <=n; i ++ )
dfs( i );
while ( !l.empty() ) {
cout << l.back() << " ";
l.pop_back();
}
return 0;
}