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