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. if(level[i]==-1){
  48. cout<<"NO"<<" ";
  49. }
  50. else{
  51. cout<<"YES"<<" ";
  52.  
  53. }
  54.  
  55. }
  56. }
Success #stdin #stdout 0s 5320KB
stdin
5 4
1 2
2 3
2 4
3 5
2
stdout
YES YES YES YES YES