Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- vector<int> G[1000000];
- int check[1000000];
- int comp;
- void dfs(int u){
- check[u]=comp;
- for(auto v:G[u]){
- if(!check[v]) dfs(v);
- }
- return ;
- }
- int main()
- {
- int n,m;
- scanf("%d%d",&n,&m);
- int x,y;
- while(m--){
- scanf("%d%d",&x,&y);
- G[x].push_back(y);
- G[y].push_back(x);
- }
- for(int i=1;i<=n;i++){
- if(!check[i]){
- comp++;
- dfs(i);
- }
- }
- int q;
- scanf("%d",&q);
- while(q--){
- scanf("%d%d",&x,&y);
- if(check[x]==check[y]) printf("Yes\n");
- else printf("No\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement