Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- void makeset(int n, int ara[])
- {
- ara[n]=n;
- }
- int findr(int x,int ara[])
- {
- if(ara[x]==x)return x;
- return findr(ara[x],ara);
- }
- void dounion(int a, int b, int ara[])
- {
- int x= findr(a,ara);
- int y = findr(b, ara);
- if(x==y)return;
- else ara[x]=y;
- }
- int main()
- {
- int node, edge;
- cin>>node>>edge;
- int ara[node+1];
- int u,v;
- for(int i=0;i<edge;i++)
- {
- cin>>u>>v;
- makeset(u,ara);
- makeset(v,ara);
- dounion(u,v,ara);
- }
- int x, y;
- cin>>x>>y;
- int p,q;
- p=findr(x,ara);
- q=findr(y,ara);
- if(p==q)cout<<"yes"<<endl;
- else cout<<"no"<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement