Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. #define fr(n,k) for(int i=n;i<k;i++)
  5.  
  6. int vis[20005];
  7. vector<int>vc[20005];
  8. void bfs(int x){
  9.     queue<int>q;
  10.     q.push(x);
  11.     vis[x]=1;
  12.     while(!q.empty()){
  13.         int u=q.front();
  14.         int v;
  15.         q.pop();
  16.         fr(0,vc[u].size()){
  17.             if(vis[u]==1){
  18.                 v=vc[u][i];
  19.                 vis[v]=2;
  20.                 q.push(v);
  21.             }
  22.             else if(vis[u]==2){
  23.                 int v=vc[u][i];
  24.                 vis[v]=1;
  25.                 q.push(v);
  26.             }
  27.         }
  28.         vc[v].clear();
  29.     }
  30. }
  31.  
  32. int main()
  33. {
  34.     int t;
  35.     cin>>t;
  36.     int i=1;
  37.     while(t--){
  38.         int n;
  39.         int mx;
  40.         set<int>st;
  41.         cin>>n;
  42.         fr(0,n){
  43.             int x,y;
  44.             cin>>x>>y;
  45.             vc[x].pb(y);vc[y].pb(x);
  46.             st.insert(x);
  47.             st.insert(y);
  48.         }
  49.         for(auto it=st.begin();it!=st.end();it++){
  50.             if(vis[*it])continue;
  51.             bfs(*it);
  52.  
  53.         }
  54.         int b=0,w=0;
  55.         for(auto it=st.begin();it!=st.end();it++){
  56.             if(vis[*it]==1)w++;
  57.             else if(vis[*it])b++;
  58.         }
  59.         if(w>b)mx=w;
  60.         else mx=b;
  61.  
  62.         cout<<"Case "<<i<<": "<<mx<<endl;
  63.         i++;
  64.         memset(vis,0,sizeof(vis));
  65.     }
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement