# WA in FIRESC

Hello, everyone. I have a problem with the FIRESC. Can you tell me what is wrong with my code? It would be also nice if you can provide some test cases that might be a tricky. Thanks in advance.

import java.util.*;

public class Main {

static int[] employee;

public static void main(String[] args) {

while(t-- > 0) {

employee = new int[n];
for(int i=0; i<n; i++) {

employee[i] = i;

}

WeightQuickUnion qUnion = new WeightQuickUnion(employee);

//Relation between employee
for(int i=0; i<m; i++) {

if(!qUnion.isConnect(a-1, b-1))
qUnion.union(a-1,b-1);

}
qUnion.findRoot();
System.out.println(qUnion.getWay() + " " + qUnion.getLeader());

}

}

}

class WeightQuickUnion {

private int[] id;
private int[] sz;
private List<Integer> root = new ArrayList<Integer>();

public WeightQuickUnion(int[] id) {

this.id = id;
sz = new int[id.length];

for(int i=0; i<id.length; i++) {

id[i]=i;
sz[i]++;

}

}

public int root(int i) {

while(i != id[i]) {

id[i] = id[id[i]];
i = id[i];

}

return i;

}

public void union(int p, int q) {

int i = root(p);
int j = root(q);

if(sz[i] > sz[j]) {

id[j] = i;
sz[i] += sz[j];

}
else {

id[i] = j;
sz[j] += sz[i];

}

}

public boolean isConnect(int p, int q) {

return root(p)==root(q);

}

long temp = 1;

for(int i=0; i<root.size(); i++) {

temp *= sz[root.get(i)];

}

return temp;

}

public void findRoot() {

for(int i=0; i<id.length; i++) {

if(id[i] == i) {