fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void bfs(int s, int n, vector<int> adj[]) {
  5. bool visited[n+1] = {};
  6.  
  7. queue<int> q;
  8. q.push(s);
  9. visited[s] = true;
  10.  
  11. while (!q.empty()) {
  12. int u = q.front();
  13. q.pop();
  14.  
  15. for (int v : adj[u]) {
  16. if (!visited[v]) {
  17. visited[v] = true;
  18. q.push(v);
  19. }
  20. }
  21. }
  22.  
  23. vector<int> res;
  24. for (int i = 1; i <= n; i++) {
  25. if (visited[i]) {
  26. res.push_back(i);
  27. }
  28. }
  29.  
  30. for (int i = 0; i < res.size(); i++) {
  31. cout << res[i] << ' ';
  32. }
  33. }
  34.  
  35. int main() {
  36. int n, m, s;
  37. cin >> n >> m >> s;
  38.  
  39. vector<int> adj[n+1];
  40.  
  41. for (int i = 0; i < m; i++) {
  42. int u, v;
  43. cin >> u >> v;
  44. adj[u].push_back(v);
  45. adj[v].push_back(u);
  46. }
  47.  
  48. bfs(s, n, adj);
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0.01s 5320KB
stdin
4 4 4
1 2
1 4
2 4
3 4
stdout
1 2 3