Advertisement
Guest User

Untitled

a guest
Jul 25th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. #include "bits/stdc++.h"
  2. using namespace std;
  3. int n,m,l,r;
  4. bool ri=true;
  5. vector < vector <int> > g;
  6. vector <int> used,c;
  7. void input()
  8. {
  9. cin>>n>>m;
  10. g.resize(n+1);
  11. used.resize(n+1,0);
  12. c.resize(n+1);
  13. for(int i=1;i<m+1;i++)
  14. {
  15. cin>>l>>r;
  16. g[l].push_back(r);
  17. g[r].push_back(l);
  18. }
  19.  
  20. }
  21. void dfs(int a)
  22. {
  23. used[a]=true;
  24. for(int i=0;i<g[a].size();i++)
  25. if(!used[g[a][i]])
  26. {
  27. c[g[a][i]]=1-c[a];
  28. dfs(g[a][i]);
  29. }
  30. else if (c[g[a][i]]==c[a])
  31. {
  32. ri=false;
  33. return;
  34. }
  35. }
  36. void bfs(int a)
  37. {
  38. queue <int > q;
  39. q.push(a);
  40. used[a]=1;
  41. c[a]=0;
  42. while(!q.empty())
  43. {
  44. int v=q.front();
  45. q.pop();
  46. for(int i=0;i<g[v].size();i++)
  47. if(!used[g[v][i]])
  48. { c[g[v][i]]=1-c[v];
  49. used[g[v][i]]=1;
  50. q.push(g[v][i]);
  51. }
  52. else if (c[g[v][i]]==c[v])
  53. {
  54. ri=false;
  55. return;
  56. }
  57. }
  58. }
  59.  
  60. int main()
  61. { input();
  62. /*
  63. bfs(1); */
  64.  
  65. c[1]=1;
  66. dfs(1);
  67. if(ri)
  68. {
  69. cout<<"YES"<<endl;
  70. for(int i=1;i<n+1;i++)
  71. if(c[i]==0) cout<<i<<" ";
  72. }
  73. else cout<<"NO.";
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement