#include <stdio.h> #include <stdlib.h> #include <string.h> #define maxn 20010 int f[20010]; int n, m; int find(int v){ if(f[v] == v)return v; int F = find(f[v]); f[v] = F; return F; } int main() { while(scanf("%d%d",&n,&m) != EOF){ for(int i = 1;i <= n; i++)f[i] = i; for(int i = 0;i < m; i++){ int a, b; scanf("%d%d",&a,&b); int fa = find(a); int fb = find(b); f[fb] = fa; } int Q; scanf("%d",&Q); while(Q--){ int a, b; scanf("%d%d",&a,&b); int fa = find(a); int fb = find(b); if(fa==fb){ printf("Yes\n"); } else{ printf("No\n"); } } } return 0; } /************************************************************** Problem: 2237 User: admin Language: C Result: Accepted Time:57 ms Memory:1224 kb ****************************************************************/