Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. typedef long long int ll;
  4.  
  5. using namespace std;
  6.  
  7.  
  8.  
  9. map<pair<ll, ll>, vector<pair<ll, ll> > > v;
  10. map<pair<ll, ll>, bool> vis;
  11. vector<pair<ll,ll> > unikalne;
  12. ll it;
  13.  
  14.  
  15. void dfs(ll x, ll y)
  16. {
  17. vis[make_pair(x,y)] = true;
  18. it++;
  19. for(ll i = 0 ; i < v[make_pair(x,y)].size(); i++)
  20. {
  21. // cout << v[make_pair(x,y)][i].first << " " << v[make_pair(x,y)][i].second << endl;
  22. if(!vis[make_pair(v[make_pair(x,y)][i].first, v[make_pair(x,y)][i].second)]) dfs(v[make_pair(x,y)][i].first,v[make_pair(x,y)][i].second);
  23. }
  24. }
  25.  
  26. bool find_euler()
  27. {
  28. int sum = 0;
  29. for(int i = 0; i < unikalne.size(); i++)
  30. {
  31. if(v[unikalne[i]].size() % 2 == 1) sum++;
  32. }
  33. if(sum > 2) return false;
  34. return true;
  35. }
  36.  
  37. int main()
  38. {
  39. ios_base::sync_with_stdio(0);
  40.  
  41. ll t, n, x1, x2, y1, y2;
  42. cin >> t;
  43. for(ll i = 0 ; i < t; i++)
  44. {
  45. cin >> n;
  46. ll vertex = 0;
  47. map<pair<ll,ll>, bool> exist;
  48. for(ll i = 0 ; i < n; i++)
  49. {
  50. cin >> x1 >> y1 >> x2 >> y2;
  51. v[make_pair(x1,y1)].push_back(make_pair(x2,y2));
  52. v[make_pair(x2,y2)].push_back(make_pair(x1,y1));
  53. if(!exist[make_pair(x1,y1)])
  54. {
  55. exist[make_pair(x1,y1)] = true;
  56. unikalne.push_back(make_pair(x1,y1));
  57. vertex++;
  58. }
  59. if(!exist[make_pair(x2,y2)])
  60. {
  61. exist[make_pair(x2,y2)] = true;
  62. unikalne.push_back(make_pair(x2,y2));
  63. vertex++;
  64. }
  65. }
  66. if(find_euler())
  67. {
  68.  
  69.  
  70. dfs(x1,y1);
  71. if(it == vertex) cout << "TAK" << endl;
  72. else cout << "NIE" << endl;
  73. }
  74. else cout << "NIE" << endl;
  75. unikalne.clear();
  76. vis.clear();
  77. v.clear();
  78. it = 0;
  79. }
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement