Advertisement
anparvez10

Untitled

Mar 29th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. map<int, vector<int> >adj;
  4. map<int, int>visited;
  5. map<int,int>::iterator it;
  6. int cnt1,cnt2;
  7. void bfs(int s)
  8. {
  9. queue<int>q;
  10. q.push(s);
  11. visited[s]=1;
  12. while(!q.empty())
  13. {
  14. int u=q.front();
  15. //cout<<u<<" ";
  16. q.pop();
  17. for(int i=0 ; i< adj[u].size() ; i++ )
  18. {
  19. if(visited[adj[u][i]]==0)
  20. {
  21. if(visited[u]==2)
  22. {
  23. int v=adj[u][i];
  24. // cout<<u<<endl;
  25. visited[v]=1;
  26. q.push(v);
  27. }
  28. else if(visited[u]==1)
  29. {
  30. int v=adj[u][i];
  31. visited[v]=2;
  32. q.push(v);
  33. }
  34. }
  35. }
  36. }
  37.  
  38. }
  39. int main()
  40. {
  41. int t,cs=1;
  42. cin>>t;
  43. while(t--)
  44. {
  45. int n,edge,n1,n2,cnn1=0,cnt2=0;
  46. visited.clear();
  47. cin>>edge;
  48. vector<int>s;
  49. s.clear();
  50. int p;
  51. for(int i=1; i<=edge; i++)
  52. {
  53. cin>>n1>>n2;
  54. s.push_back(n1);
  55. s.push_back(n2);
  56. adj[n1].push_back(n2);
  57. adj[n2].push_back(n1);
  58. p=n1;
  59. }
  60. bfs(p);
  61. printf("Case %d: ",cs++);
  62. for(int i=0; i<s.size(); i++)
  63. {
  64. if(visited[s[i]]==0)
  65. {
  66. bfs(s[i]);
  67. }
  68. }
  69.  
  70. for(it=visited.begin() ; it!=visited.end() ; it++ )
  71. {
  72. // cout<<it->first<<" "<<it->second<<endl;
  73. if(it->second==1)
  74. {
  75. cnt1++;
  76. }
  77. else if(it->second==2)
  78. {
  79. cnt2++;
  80. }
  81. }
  82. cout<<max(cnt1,cnt2)<<endl;
  83. cnt1=0;
  84. cnt2=0;
  85. }
  86.  
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement