Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void initset(int n){
- for(int i = 1; i<=n; i++){
- ara[i] = i;
- sz[i] = 1;
- }
- }
- int findset(int i){
- if(ara[i] == i) return i;
- return ara[i] = findset(ara[i]);
- }
- bool issameset(int i, int j){
- return (findset(i)==findset(j));
- }
- void unionset(int i, int j){
- int a = findset(j);
- int b = findset(i);
- if(a==b) return;
- if(sz[a]>=sz[b]){
- sz[a]+=sz[b];
- ara[b] = a;
- }
- else{
- sz[b]+=sz[a];
- ara[a] = b;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement