摘自我某题并查集的代码,这码风还有救吗(((
il int find(co int &x) {
return *(f + x) < 0 ? x : *(f + x) = find(*(f + x));
}
il void merge(co int &x, co int &y, co int &w) {
int u = find(x), v = find(y);
if (*(f + u) > *(f + v)) {
swap(u, v);
}
*(val + u) = max(*(val + u) - *(f + v) * w, *(val + v) - *(f + u) * w);
*(f + u) += *(f + v);
*(f + v) = u;
}