Advertisement
Tahsin24

uva - 10305

Nov 25th, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. struct result
  7. {
  8. int time;
  9. int node;
  10. };
  11.  
  12. bool compare(result a, result b)
  13. {
  14. return a.time > b.time;
  15. }
  16.  
  17. int start[1000];
  18. int finish[1000];
  19. int time;
  20. int visited[1000];
  21. vector<int> v[100000];
  22. vector<result> r;
  23. int n, m;
  24.  
  25. void DFS_visit(int source)
  26. {
  27. start[source] = time++;
  28. visited[source] = 1;
  29. for (int i = 0; i < v[source].size(); i++)
  30. {
  31. int a = v[source][i];
  32. if (visited[a] != 1)
  33. {
  34. DFS_visit(a);
  35. }
  36. }
  37. finish[source] = time++;
  38. }
  39.  
  40. void DFS()
  41. {
  42. for (int i = 1; i <= n; i++)
  43. {
  44. if (visited[i] != 1)
  45. {
  46. DFS_visit(i);
  47. }
  48. }
  49. }
  50.  
  51.  
  52. int main()
  53. {
  54. while (cin >> n >> m)
  55. {
  56.  
  57. if (n == 0 && m == 0)break;
  58. time = 0;
  59.  
  60. for (int i = 0; i < 1000; i++)
  61. {
  62. visited[i] = start[i] = finish[i] = 0;
  63. }
  64.  
  65. int a, b;
  66. for (int i = 0; i < m; i++)
  67. {
  68. cin >> a >> b;
  69. v[a].push_back(b);
  70. }
  71.  
  72. DFS();
  73.  
  74. result k;
  75.  
  76. for (int i = 1; i <= n; i++)
  77. {
  78. k.time = finish[i];
  79. k.node = i;
  80. r.push_back(k);
  81. }
  82. sort(r.begin(), r.end(), compare);
  83.  
  84. for (int i = 0; i < r.size() - 1; i++)
  85. {
  86. cout << r[i].node << " ";
  87. }
  88. cout << r[n - 1].node << endl;
  89. r.clear();
  90. for (int i = 0; i < 100000; i++)
  91. {
  92. v[i].clear();
  93. }
  94. }
  95. return 0;
  96. }
  97.  
  98.  
  99. /*
  100.  
  101. 5 4
  102. 1 2
  103. 2 3
  104. 1 3
  105. 1 5
  106. 0 0
  107.  
  108. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement