Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. bool visited[10002];
  6. bool boi[10002];
  7. vector <vector <int> > v(100002);
  8.  
  9. void dfs (int teme, int boja) ///znaci treba temeto 'teme' da go oboime so bojata 'boja'
  10. {
  11. visited[teme] = true;
  12. boi[teme] = boja;
  13.  
  14. for (int i=0; i<v[teme].size(); i++)
  15. if (visited[v[teme][i]] == false)
  16. dfs(v[teme][i], 1-boja); ///ova 1-boja e samo finta
  17. ///da go pravi sprotivnoto
  18. ///ako boja=0, 1-boja ke bide 1
  19. ///a ako boja=1, 1-boja ke bide 0
  20. ///muabetot e deka sosedot treba da
  21. ///se oboi vo boja sprotivna od momentalnata
  22. }
  23.  
  24. int main()
  25. {
  26. int n,m;
  27. cin >> n >> m;
  28.  
  29. for (int i=0; i<m; i++)
  30. {
  31. int a,b;
  32. cin >> a >> b;
  33. v[a].push_back(b);
  34. v[b].push_back(a);
  35. }
  36.  
  37. memset(visited,0,sizeof(visited));
  38. memset(boi,0,sizeof(boi));
  39. dfs(0,0);
  40.  
  41. ///od koga ke zavrshi dfs-to treba da proverime dali
  42. ///postojat dva sosedi koi se oboeni isto.
  43.  
  44. for (int i=0; i<n; i++)
  45. for (int j=0; j<v[i].size(); j++) ///sosedot ne e j, tuku v[i][j]!
  46. if (boi[i] == boi[v[i][j]]) ///sosedi se, i isto se oboeni
  47. {
  48. cout << "NO";
  49. return 0;
  50. }
  51. cout << "YES";
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement