Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int parent[100010];
- int find(int u){
- if(parent[u]==u){
- return u;
- }
- return parent[u]=find(parent[u]);
- }
- void merge(int u, int v){
- u=find(u);
- v=find(v);
- if(u==v){
- return ;
- }
- if(v>u){
- parent[u]=v;
- }
- else{
- parent[v]=u;
- }
- }
- int main(){
- int n,m;
- cin >> n >> m;
- int u,v;
- for(int i=1;i<=n;++i){
- parent[i]=i;
- }
- for(int i=0;i<m;++i){
- cin >> u >> v;
- merge(u,v);
- }
- int a;
- cin >> a;
- for(int i=0;i<a;++i){
- cin >> u >> v;
- if(find(u)==find(v)){
- cout << "Yes\n";
- }
- else{
- cout << "No\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement