(
self, idx: int, left_element: int, right_element: int, a: list[int]
)
| 37 | return idx * 2 + 1 |
| 38 | |
| 39 | def build( |
| 40 | self, idx: int, left_element: int, right_element: int, a: list[int] |
| 41 | ) -> None: |
| 42 | if left_element == right_element: |
| 43 | self.segment_tree[idx] = a[left_element - 1] |
| 44 | else: |
| 45 | mid = (left_element + right_element) // 2 |
| 46 | self.build(self.left(idx), left_element, mid, a) |
| 47 | self.build(self.right(idx), mid + 1, right_element, a) |
| 48 | self.segment_tree[idx] = max( |
| 49 | self.segment_tree[self.left(idx)], self.segment_tree[self.right(idx)] |
| 50 | ) |
| 51 | |
| 52 | def update( |
| 53 | self, idx: int, left_element: int, right_element: int, a: int, b: int, val: int |
no test coverage detected