fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int>graph[1001];
  4. int visit[1001];
  5. int n, e;
  6.  
  7. vector<int>ans;
  8.  
  9. void DFS(int start)
  10. {
  11. visit[start] = 1;
  12.  
  13. for(int j = 0; j < graph[start].size(); j++)
  14. {
  15. int node = graph[start][j];
  16. if(visit[node] == 0)
  17. {
  18. visit[node] = 1;
  19. DFS(node);
  20. }
  21. }
  22. ans.push_back(start);
  23. }
  24.  
  25.  
  26.  
  27. int main()
  28. {
  29. cin>>n>>e;
  30. int u, v;
  31. for(int i = 1; i <= e; i++)
  32. {
  33. cin>>u>>v;
  34. graph[u].push_back(v);
  35. }
  36.  
  37. for(int i = 1; i <= n; i++)
  38. {
  39. if(visit[i] == 0)
  40. {
  41. DFS(i);
  42. }
  43. }
  44.  
  45.  
  46. for(int i = ans.size()-1; i >= 0; i--)
  47. {
  48. cout<<ans[i]<<" ";
  49. }
  50. }
  51.  
Success #stdin #stdout 0s 5304KB
stdin
8 8
1 3
2 3
2 4
3 5
5 8
5 6
4 6
6 7
stdout
2 4 1 3 5 6 7 8