Skip to content

Commit 7b89431

Browse files
authored
Char-optimize Treap source code (#289)
1 parent 7515986 commit 7b89431

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

content/data-structures/Treap.h

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ template<class F> void each(Node* n, F f) {
2727
pair<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

0 commit comments

Comments
 (0)