def add(self, i): t = self.treap if t: from random import randint p = randint(0,100) self.treap = t.add(Treap, Treap(p,i)) else: self.treap = Treap.make_treap(Treap, [i])
def recover(self): treap = Treap.make_treap(Treap, range(1, len(self.hints)+1)) res = [] for hint in reversed(self.hints): node = treap.k_th(treap.size()-1-hint) treap = treap.delete_val(node.val) res.insert(0, node.val) return res