Advertisement
Slayerfeed

Cultist

Apr 23rd, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. int parent[100010];
  7.  
  8.  
  9. int find(int u){
  10.     if(parent[u]==u){
  11.         return u;
  12.     }
  13.     return parent[u]=find(parent[u]);
  14. }
  15. void merge(int u, int v){
  16.     u=find(u);
  17.     v=find(v);
  18.     if(u==v){
  19.         return ;
  20.     }
  21.     if(v>u){
  22.         parent[u]=v;
  23.     }
  24.     else{
  25.         parent[v]=u;
  26.     }
  27.  
  28. }
  29. int main(){
  30.     int n,m;
  31.     cin >> n >> m;
  32.     int u,v;
  33.     for(int i=1;i<=n;++i){
  34.         parent[i]=i;
  35.     }
  36.     for(int i=0;i<m;++i){
  37.         cin >> u >> v;
  38.         merge(u,v);
  39.  
  40.     }
  41.     int a;
  42.  
  43.     cin >> a;
  44.  
  45.     for(int i=0;i<a;++i){
  46.         cin >> u >> v;
  47.  
  48.         if(find(u)==find(v)){
  49.             cout << "Yes\n";
  50.         }
  51.         else{
  52.             cout << "No\n";
  53.         }
  54.     }
  55.  
  56.     return 0;
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement