fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 1e5 + 5, M = 2e5 + 5;
  6.  
  7. int n, m, u, v;
  8.  
  9. vector<int> adj[N];
  10. bool vis[N];
  11.  
  12. void DFS(int u) { // o(n + m)
  13. vis[u] = true;
  14. for (int v : adj[u]) {
  15. if (!vis[v]) {
  16. cout << v << " ";
  17. DFS(v);
  18. }
  19. }
  20. }
  21.  
  22. int main() {
  23. scanf("%d %d", &n, &m);
  24. for (int i = 0; i < m; i++) {
  25. scanf("%d %d", &u, &v);
  26. adj[u].push_back(v);
  27. //adj[v].push_back(u);
  28. }
  29. DFS(0);
  30. return 0;
  31. }
  32.  
  33. /*
  34. Samples:
  35. 7 6
  36. 0 1
  37. 1 2
  38. 2 5
  39. 2 3
  40. 2 6
  41. 3 4
  42. */
Success #stdin #stdout 0.01s 5876KB
stdin
6 5
0 1
0 2
3 4
4 5
5 3
stdout
1 2