3
vector<int> parent, size;7
for (int i = 0; i <= n; i++) {13
int findParent(int num) {14
if (parent[num] == num) return num;15
return parent[num] = findParent(parent[num]);18
void unionBySize(int u, int v) {19
int parU = findParent(u);20
int parV = findParent(v);22
if (parU == parV) return;24
if (size[parU] < size[parV]) {26
size[parV] += size[parU];29
size[parU] += size[parV];36
vector<bool> areConnected(int n, int threshold, vector<vector<int>> &queries) {39
// Make connections with its multiple40
for (int i = threshold + 1; i <= n; i++) {43
dsu.unionBySize(i, i * j);49
for (auto &query : queries) {53
// Check if both cities belong to same component or not54
if (dsu.findParent(u) == dsu.findParent(v))