fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3.  
  4. using namespace std;
  5. int main() {
  6. int n,e;
  7. cin>>n>>e;
  8. vector<int> g[n+1];
  9.  
  10. for(int i=1;i<=e;i++){
  11. int u;
  12. int v;
  13. cin>>u>>v;
  14.  
  15. g[u].push_back(v);
  16. g[v].push_back(u);
  17. }
  18.  
  19. int s;
  20. cin>>s;
  21. queue<pair<int,int>> q;
  22. q.push({s,0});
  23. vector<int> level(n+1,-1);
  24. vector<int> visited(n+1);
  25. visited[s]=1;
  26.  
  27.  
  28.  
  29.  
  30. while(!q.empty()){
  31. int a = q.front().first;
  32. int lvl = q.front().second;
  33. level[a] = lvl;
  34. q.pop();
  35.  
  36.  
  37. for(auto it : g[a]){
  38. if(!visited[it]){
  39. q.push({it,lvl+1});
  40. visited[it]=1;
  41.  
  42. }
  43. }
  44. }
  45.  
  46. for(int i=1;i<=n;i++){
  47. cout<<level[i]<<" ";
  48.  
  49. }
  50. }
Success #stdin #stdout 0s 5324KB
stdin
5 4
1 2
2 3
2 4
3 5
2
stdout
1 0 1 1 2