Pagini recente » Cod sursa (job #1220132) | Istoria paginii runda/simulare-cartita-28/clasament | Istoria paginii runda/simulare-cartita-40/clasament | Autentificare | Cod sursa (job #2014113)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int sol[50001],k,hz[50001],a,b,n,m;
vector<int>h[50001];
void dfs( int nod ){
for( int i = 0; i < h[nod].size(); i ++ ){
if( hz[ h[nod][i] ] == 0 ){
hz[h[nod][i]] = 1;
dfs( h[nod][i] );
sol[++k] = h[nod][i];
}
}
return;
}
int main(){
in >> n >> m;
for( int i = 1; i <= m; i ++ ){
in >> a >> b;
h[a].push_back(b);
}
for( int i = 1; i <= n; i ++ ){
if( hz[i] == 0 ){
hz[i] = 1;
dfs( i );
sol[++k] = i;
}
}
for( int i = k; i >= 1; i -- ){
out<<sol[i]<<" ";
}
return 0;
}