File tree Expand file tree Collapse file tree 1 file changed +8
-10
lines changed Expand file tree Collapse file tree 1 file changed +8
-10
lines changed Original file line number Diff line number Diff line change @@ -27,15 +27,15 @@ template<class F> void each(Node* n, F f) {
2727pair<Node*, Node*> split (Node* n, int k) {
2828 if (!n) return {};
2929 if (cnt (n->l ) >= k) { // "n->val >= k" for lower_bound(k)
30- auto pa = split (n->l , k);
31- n->l = pa. second ;
30+ auto [L,R] = split (n->l , k);
31+ n->l = R ;
3232 n->recalc ();
33- return {pa. first , n};
33+ return {L , n};
3434 } else {
35- auto pa = split (n->r , k - cnt (n->l ) - 1 ); // and just "k"
36- n->r = pa. first ;
35+ auto [L,R] = split (n->r ,k - cnt (n->l ) - 1 ); // and just "k"
36+ n->r = L ;
3737 n->recalc ();
38- return {n, pa. second };
38+ return {n, R };
3939 }
4040}
4141
@@ -44,12 +44,10 @@ Node* merge(Node* l, Node* r) {
4444 if (!r) return l;
4545 if (l->y > r->y ) {
4646 l->r = merge (l->r , r);
47- l->recalc ();
48- return l;
47+ return l->recalc (), l;
4948 } else {
5049 r->l = merge (l, r->l );
51- r->recalc ();
52- return r;
50+ return r->recalc (), r;
5351 }
5452}
5553
You can’t perform that action at this time.
0 commit comments