import java.util.Arrays;
public class DisJointSetTest {
static int N = 5;
static int[] parents;
static void make() {
for(int i = 0; i < N; i++) {
parents[i] = i;
}
}
static int findSet(int a) {
if(a==parents[a]) return a;
return parents[a] = findSet(parents[a]);
}
static boolean union(int a , int b) {
int aRoot = findSet(a);
int bRoot = findSet(b);
if(aRoot == bRoot) return false;
parents[bRoot] = aRoot;
return true;
}
public static void main(String[] args) {
parents = new int[N];
make();
System.out.println(Arrays.toString(parents));
System.out.println(union(0,1));
System.out.println(Arrays.toString(parents));
System.out.println(union(2,1));
System.out.println(Arrays.toString(parents));
System.out.println(union(3,2));
System.out.println(Arrays.toString(parents));
System.out.println(union(4,3));
System.out.println(Arrays.toString(parents));
}
}