Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 100010;
  5.  
  6. int parent[N];
  7. int siz[N];
  8.  
  9. bool isSet[N];
  10.  
  11. void make_set(int v)
  12. {
  13.     parent[v] = v;
  14.     siz[v] = 1;
  15. }
  16.  
  17. int find_set(int v)
  18. {
  19.     if(v == parent[v])
  20.         return v;
  21.     return parent[v] = find_set(parent[v]);
  22. }
  23.  
  24. void union_set(int a,int b)
  25. {
  26.     a = find_set(a);
  27.     b = find_set(b);
  28.     if(a != b)
  29.     {
  30.         if(siz[a] < siz[b])
  31.             swap(a,b);
  32.         parent[b] = a;
  33.         siz[a] +=siz[b];
  34.         siz[b] = 0;
  35.     }
  36. }
  37.  
  38. int t;
  39. int n,m,q;
  40. int x,y;
  41.  
  42.  
  43.  
  44. int main()
  45. {
  46.     ios::sync_with_stdio(0);
  47.     cin.tie(NULL);
  48.     cout.tie(NULL);
  49.  
  50.     //freopen("input.txt", "r", stdin);
  51.     //freopen("out.txt", "w", stdout);
  52.  
  53.  
  54.     //generatePrimes();
  55.  
  56.     cin >> t;
  57.     while(t--)
  58.     {
  59.         //cin >> b1 >> p1 >> b2 >> p2;
  60.         memset(parent,0,sizeof parent);
  61.         memset(isSet,false,sizeof isSet);
  62.         memset(siz,0,sizeof siz);
  63.         cin >> n >> m >> q;
  64.        for(int i = 0; i < m; i++)
  65.        {
  66.             cin >> x >> y;
  67.             if(!isSet[x])
  68.                 make_set(x);
  69.             if(!isSet[y])
  70.                 make_set(y);
  71.             isSet[x] = true;
  72.             isSet[y] = true;
  73.             union_set(x,y);
  74.        }
  75.        string ans = "";
  76.        for(int i = 0; i < q; i++)
  77.        {
  78.             cin >> x >> y;
  79.             if(!isSet[x] || !isSet[y])
  80.                 cout << "0";
  81.             else
  82.             {
  83.                 x = find_set(x);
  84.                 y = find_set(y);
  85.                if(x == y)
  86.                 cout << "1";
  87.                else
  88.                 cout << "0";
  89.             }
  90.        }
  91.        cout << endl;
  92.     }
  93.  
  94.  
  95.  
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement