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