As a way to solve Problem E from ZeptoLab Code Rush 2014, I decided to implement Treap for the first time. Treap is a randomized binary search tree that the maximum height of the tree is about
O(log n) (similar to AVL tree). It’s easier to implement than a normal AVL tree. Why do I have to implement it? I need to perform these operations in
O(log n): Add, Remove, Find the sum of the
k smallest elements. My implementation was added here.
Note that this problem E can also be solved by other data structures: Binary Indexed Tree, Cartesian tree or Priority Queue, because this problem only requires calling this operation, “Find the sum of the
k smallest elements”, multiple times with the non-ascending value of