fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n;
  6. cin >> n;
  7.  
  8. int m;
  9. cin >> m;
  10.  
  11. vector<int> Graph[n+5];
  12.  
  13. for(int i=0; i<m; i++) {
  14. int x, y;
  15.  
  16. cin >> x >> y;
  17.  
  18. Graph[x].push_back(y);
  19. Graph[y].push_back(x);
  20. }
  21.  
  22. int src = 1;
  23. int vis[n+5] = {0};
  24. int level[n+5] = {0};
  25.  
  26. queue<int> q;
  27.  
  28. q.push(src);
  29. vis[src] = 1;
  30. level[src] = 0;
  31.  
  32. while(!q.empty()) {
  33. int removed = q.front();
  34.  
  35. cout << "Removed: " << removed << " Level: " << level[removed] << endl;
  36.  
  37. q.pop();
  38.  
  39. for(auto u : Graph[removed]) {
  40. if(vis[u] == 0) {
  41. q.push(u);
  42. vis[u] = 1;
  43. level[u] = level[removed] + 1;
  44. }
  45. }
  46. }
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 5320KB
stdin
5 4
0 1
1 2
2 3
2 4
stdout
Removed: 1 Level: 0
Removed: 0 Level: 1
Removed: 2 Level: 1
Removed: 3 Level: 2
Removed: 4 Level: 2