Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <vector>
  4. #include <set>
  5. #include <algorithm>
  6. #include <queue>
  7.  
  8. using namespace std;
  9.  
  10. vector <bool> used;
  11. vector <bool> colour;
  12.  
  13. void dfs(int v, vector <vector <int>> & a, bool col)
  14. {
  15. used[v] = true;
  16. colour[v] = !col;
  17. for (int i = 0; i < a[v].size(); i++)
  18. if (!used[a[v][i]])
  19. dfs(a[v][i], a, !col);
  20. }
  21.  
  22. int main()
  23. {
  24. #ifdef _DEBUG
  25. freopen("input.txt", "r", stdin);
  26. freopen("output.txt", "w", stdout);
  27. #endif
  28.  
  29. int n, m;
  30. cin >> n >> m;
  31. used.resize(n);
  32. colour.resize(n);
  33. vector <vector<int>> a(n);
  34.  
  35. for (int j = 0; j < m; j++)
  36. {
  37. int u, v;
  38. cin >> u >> v;
  39. u--;
  40. v--;
  41. a[v].push_back(u);
  42. a[u].push_back(v);
  43. }
  44.  
  45. for (int i = 0; i < n; i++)
  46. if (used[i] != true)
  47. dfs(i, a, false);
  48.  
  49. for (int i = 0; i < n; i++)
  50. {
  51. cout << i << ": ";
  52. for (int j = 0; j < a[i].size(); j++)
  53. cout << a[i][j] << ' ';
  54. cout << endl;
  55. }
  56.  
  57.  
  58. for (int i = 0; i < colour.size(); i++)
  59. cout << (int)colour[i] << ' ';
  60. cout << endl;
  61.  
  62. for (int i = 0; i < n; i++)
  63. for (int j = 0; j < a[i].size(); j++)
  64. if (colour[i] == colour[a[i][j]])
  65. {
  66. cout << -1 << endl;
  67. return 0;
  68. }
  69.  
  70. cout << "YES";
  71. return 0;
  72.  
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement