#pragma once #include struct union_find_disjoint_set { union_find_disjoint_set() noexcept = default; union_find_disjoint_set(uint32_t size) noexcept; void init(uint32_t size) noexcept; int32_t find(uint32_t x) noexcept; int32_t merge(uint32_t x, uint32_t y) noexcept; void extract_disjoint_sets(std::vector>& disjoint_sets, std::vector& index_map) noexcept; std::vector parent{}; };