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