Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* dsu */
- constexpr int _MAXN = 2e5;
- int _parent[_MAXN + 1], _size[_MAXN + 1];
- void _Init() noexcept
- {
- for (int i = 1; i <= _MAXN; ++i)
- _parent[i] = i, _size[i] = 1;
- }
- int _Find(int x) noexcept
- {
- return (x == _parent[x] ? x : x = _Find(_parent[x]));
- }
- void _Union(int x, int y) noexcept
- {
- x = _Find(x), y = _Find(y);
- if (x == y) return;
- if (_size[y] > _size[x])
- swap(x, y);
- _parent[y] = x;
- _size[x] += _size[y];
- }
- int _Getsize(int x) noexcept
- {
- return _size[_Find(x)];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement