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. vector<int>ans;
  7.  
  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. int main()
  26. {
  27. cin>>n>>e;
  28. int u, v;
  29. for(int i = 1; i <= e; i++)
  30. {
  31. cin>>u>>v;
  32. graph[u].push_back(v);
  33. }
  34.  
  35. for(int i = 1; i <= n; i++)
  36. {
  37. if(visit[i] == 0)
  38. {
  39. dfs(i);
  40. }
  41. }
  42.  
  43. for(int i = ans.size()-1; i >= 0; i--)
  44. {
  45. cout<<ans[i]<<" ";
  46. }
  47.  
  48.  
  49. }
  50.  
Success #stdin #stdout 0.01s 5324KB
stdin
8 8
1 3
2 3
2 4
4 6
3 5
5 8
6 7
5 6
stdout
2 4 1 3 5 6 7 8