Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- inline int recalc(int x, int sbz) {
- for (; p[x] != -1 && !usd[p[x]]; x = p[x])
- sz[x] -= sbz;
- sz[x] -= sbz;
- return x;
- }
- void decompose(int x, int cpr) {
- int ct = find_centroid(x, sz[x]); usd[ct] = 1;
- for (int i = 0; i < g[ct].size(); i++) {
- int to = g[ct][i];
- if (usd[to]) continue;
- if (to == p[ct]) {
- to = getp(to, sz[ct]);
- decompose(to, ct);
- continue;
- }
- decompose(to, ct);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement