#include #include using namespace std; vector parents; //parents[i] = i의 부모 노드. 만일 parents[i] == i라면 i가 바로 집합의 루트 노드임. main에서 문제에 주어진대로 알아서 초기화할것. vector depth; //depth[i] = i라는 set의 깊이(단, i가 루트 노드일 때만 유효). 처음에는 모두 1로 초기화할것. int findSet(int a) { if (parents[a] == a) return a; //루트 노드이므로 자신 반환. return parents[a] = findSet(parents[a]); //부모의 부모의 부모의.... 로 자신이 속한 집합의 루트 노드까지 거슬러올라감. 동시에 그 루트 노드 값으로..