Algorithm
Block Placement Queries
Solution
class Solution:
def __init__(self):
self.seg = []
self.st = SortedList()
self.mx = 50000
def update(self, idx: int, val: int, p: int, l: int, r: int) -> None:
if l == r:
self.seg[p] = val
return
mid = (l + r) >> 1
if idx <= mid:
self.update(idx, val, p << 1, l, mid)
else:
self.update(idx, val, p << 1 | 1, mid + 1, r)
self.seg[p] = max(self.seg[p << 1], self.seg[p << 1 | 1])Time Complexity
O(q log q + q log M)
Space Complexity
O(M + q)
