Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ll root (ll x) {
- while (id[x] != x)
- x = id[x];
- return x;
- }
- ll Union (ll x, ll y) {
- ll p = root(x), q = root(y);
- if (p != q) {
- if (sz[p] < sz[q])
- swap(p, q);
- id[q] = p;
- sz[p] += sz[q];
- }
- }
- ll Kruskal () {
- ll shit = 0;
- for (ll i = 0; i < edges.size(); i++) {
- ll cost = edges[i].F;
- ll u = edges[i].S.F;
- ll v = edges[i].S.S;
- if (root(u) != root(v)) {
- Union(u, v);
- shit += cost;
- }
- }
- return shit;
- }
Advertisement
Add Comment
Please, Sign In to add comment