From b7a8c91d0852d9946f7a1ebe8d4827b4071afe94 Mon Sep 17 00:00:00 2001 From: DannyAntonelli Date: Mon, 27 Feb 2023 09:00:18 +0100 Subject: [PATCH 1/3] Fix Treap --- source/treap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/treap.h b/source/treap.h index 50a6c9e..1856fd1 100644 --- a/source/treap.h +++ b/source/treap.h @@ -15,7 +15,7 @@ struct Treap { Treap(Val x, Treap* l = NULL, Treap *r = NULL) { val = x; sz = 1; prio = rng(); - left = l; right = r; rev = false; sum = 0; + left = l; right = r; rev = false; sum = x; } ~Treap() { if(left) delete left; From 24284177307eb5236a07db79d6d4089a770ca0da Mon Sep 17 00:00:00 2001 From: DannyAntonelli Date: Mon, 27 Feb 2023 09:44:08 +0100 Subject: [PATCH 2/3] Add recalc in Treap constructor --- source/treap.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/treap.h b/source/treap.h index 1856fd1..5bde28c 100644 --- a/source/treap.h +++ b/source/treap.h @@ -15,7 +15,8 @@ struct Treap { Treap(Val x, Treap* l = NULL, Treap *r = NULL) { val = x; sz = 1; prio = rng(); - left = l; right = r; rev = false; sum = x; + left = l; right = r; rev = false; sum = 0; + recalc(); } ~Treap() { if(left) delete left; From 8c492ea7dcd1bd2a509b28ffa2e39419270907b5 Mon Sep 17 00:00:00 2001 From: DannyAntonelli Date: Mon, 27 Feb 2023 17:38:38 +0100 Subject: [PATCH 3/3] Remove left and right from Treap constructor --- source/treap.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/source/treap.h b/source/treap.h index 5bde28c..5203d3f 100644 --- a/source/treap.h +++ b/source/treap.h @@ -13,11 +13,8 @@ struct Treap { int prio, sz; Treap *left, *right; - Treap(Val x, Treap* l = NULL, Treap *r = NULL) { - val = x; sz = 1; prio = rng(); - left = l; right = r; rev = false; sum = 0; - recalc(); - } + Treap(Val x) + : val(x), sum(x), rev(false), prio(rng()), sz(1), left(nullptr), right(nullptr) {} ~Treap() { if(left) delete left; if(right) delete right;