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. stack<int>ans;
  7.  
  8. void dfs(int start)
  9. {
  10. visit[start] = 1;
  11. for(int j = 1; j <= n; j++)
  12. {
  13. if(visit[j] == 0 && graph[start][j] != 0)
  14. {
  15. visit[j] = 1;
  16. dfs(j);
  17. }
  18. }
  19. ans.push(start);
  20. }
  21.  
  22. int main()
  23. {
  24. cin>>n>>e;
  25. int u, v;
  26. for(int i = 1; i <= e; i++)
  27. {
  28. cin>>u>>v;
  29. graph[u][v] = 1;
  30. }
  31. for(int i = 1; i <= n; i++)
  32. {
  33. if(visit[i] == 0)
  34. {
  35. dfs(i);
  36. }
  37. }
  38.  
  39. while(!ans.empty())
  40. {
  41. cout<<ans.top()<<" ";
  42. ans.pop();
  43. }
  44. cout<<endl;
  45.  
  46.  
  47.  
  48. }
  49.  
Success #stdin #stdout 0.01s 5292KB
stdin
8 8                                                                              1 3                                                                              2 3                                                                              3 4                                                                              3 5                                                                              5 6                                                                              4 6                                                                              5 8                                                                              6 7 
stdout
2 1 3 5 8 4 6 7