Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. const int MX = 10005;
  8.  
  9. int color[MX];
  10. bool flag;
  11. vector<int>adj[MX];
  12.  
  13. void dfs(int n)
  14. {
  15.     int i;
  16.     for(i=0;i<adj[n].size();i++)
  17.     {
  18.         if(color[adj[n][i]]==color[n])
  19.         {
  20.             flag = false;
  21.             break;
  22.         }
  23.  
  24.         else if(color[adj[n][i]]==0)
  25.         {
  26.  
  27.             if(color[n]==1)
  28.             {
  29.                 color[adj[n][i]] = 2;
  30.                 dfs(adj[n][i]);
  31.             }
  32.             else
  33.             {
  34.                 color[adj[n][i]] = 1;
  35.                 dfs(adj[n][i]);
  36.             }
  37.         }
  38.     }
  39. }
  40.  
  41. int main()
  42. {
  43.     freopen("in.txt","r",stdin);
  44.     int node, edge, i, p, q;
  45.  
  46.     while(cin>>node>>edge)
  47.     {
  48.         memset(color,0,sizeof(color));
  49.         for(i=1;i<=node;i++) adj[i].clear();
  50.  
  51.         for(i=0;i<edge;i++)
  52.         {
  53.             cin>>p>>q;
  54.             adj[p].push_back(q);
  55.             adj[q].push_back(p);
  56.         }
  57.  
  58.         flag = true;
  59.         color[1] = 1;
  60.         dfs(1);
  61.  
  62.         if(flag)
  63.         {
  64.             printf("Yes, bicolorable !\nSet 1:");
  65.             for(i=1;i<=node;i++) if(color[i]==1) printf(" %d",i);
  66.             printf("\nSet 2:");
  67.             for(i=1;i<=node;i++) if(color[i]==2) printf(" %d",i);
  68.             printf("\n");
  69.  
  70.         }
  71.  
  72.         else printf("No, not bicolorable !\n");
  73.     }
  74.  
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement