Advertisement
Guest User

cultist

a guest
Feb 16th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> G[1000000];
  4. int check[1000000];
  5. int comp;
  6. void dfs(int u){
  7.     check[u]=comp;
  8.     for(auto v:G[u]){
  9.         if(!check[v]) dfs(v);
  10.     }
  11.     return ;
  12. }
  13. int main()
  14. {
  15.     int n,m;
  16.     scanf("%d%d",&n,&m);
  17.     int x,y;
  18.     while(m--){
  19.         scanf("%d%d",&x,&y);
  20.         G[x].push_back(y);
  21.         G[y].push_back(x);
  22.     }
  23.     for(int i=1;i<=n;i++){
  24.         if(!check[i]){
  25.             comp++;
  26.             dfs(i);
  27.         }
  28.     }
  29.     int q;
  30.     scanf("%d",&q);
  31.     while(q--){
  32.         scanf("%d%d",&x,&y);
  33.         if(check[x]==check[y]) printf("Yes\n");
  34.         else printf("No\n");
  35.     }
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement