https://www.acmicpc.net/problem/1717 기본 문제. cin,cout쓰면 시간초과가 걸리므로 printf, scanf를 쓰자. #include #include #include #include using namespace std; // 트리를 이용해 상호 배제적 집합을 구현한다. struct OptimizedDisjointSet { vector parent, rank; OptimizedDisjointSet(int n) : parent(n), rank(n, 1) { for(int i = 0; i < n; i++) parent[i] = i; } // u 가 속한 트리의 루트의 번호를 반환한다 int find(int u) { if(u == parent[u]) return u; retur..