Code


SUBMITTED BY: FRmaxFR

DATE: Feb. 16, 2019, 12:56 p.m.

FORMAT: Text only

SIZE: 693 Bytes

HITS: 1336

  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. }

comments powered by Disqus