fork download
  1. #include <iostream>
  2. using namespace std;
  3. #include<bits/stdc++.h>
  4. //graph bfs
  5. int main() {
  6. // your code goes here
  7. int n ; int m ;
  8. cin>>n>>m;
  9. vector<vector<int>>adj(n+1);
  10. vector<bool>vis(n+1,false);
  11. int level[n+1];
  12. for(int i = 0 ; i < m ; i++){
  13. int u ; int v ;
  14. cin>>u>>v;
  15. adj[u].push_back(v);
  16. adj[v].push_back(u);
  17. }
  18. queue<int>q;
  19. int src = 2 ;
  20. q.push(2);
  21. vis[src]=true;
  22. level[src]=0;
  23. while(!q.empty()){
  24. int curr = q.front();
  25. q.pop();
  26. cout<<curr<<" level is "<<level[curr]<<endl;
  27. for(auto adjacent : adj[curr]){
  28. if(!vis[adjacent]){
  29. vis[adjacent]= true;
  30. q.push(adjacent);
  31. level[adjacent]=level[curr]+1;
  32. }
  33. }
  34.  
  35. }
  36.  
  37.  
  38.  
  39. return 0;
  40. }
Success #stdin #stdout 0s 5316KB
stdin
8 9 
2 8 
4 8 
4 3
2 4
4 5
5 1 
1 7
3 7 
3 6
stdout
2 level is 0
8 level is 1
4 level is 1
3 level is 2
5 level is 2
7 level is 3
6 level is 3
1 level is 3