diff --git a/Data Structures/union-find_disjoint_set.cpp b/Data Structures/union-find_disjoint_set.cpp index e9aafe4..d81a734 100644 --- a/Data Structures/union-find_disjoint_set.cpp +++ b/Data Structures/union-find_disjoint_set.cpp @@ -2,9 +2,9 @@ class UFDS { private: vector p, rank; public: UFDS(int N) { - p.assign(N, 0); - for (int i = 0; i < N; i++) p[i] = i; - rank.assign(N, 0); + p.assign(N + 1, 0); + for (int i = 0; i <= N; i++) p[i] = i; + rank.assign(N + 1, 0); } int find_set(int i) { return (p[i] == i) ? i : (p[i] = find_set(p[i])); } bool same_set(int i, int j) { return find_set(i) == find_set(j); }