| 38 | } |
| 39 | |
| 40 | void init(int k, int l, int r) { |
| 41 | m_lzt[k] = 0; |
| 42 | if (l == r) { |
| 43 | m_tree[k].max = 0; |
| 44 | m_tree[k].idx = l; |
| 45 | return; |
| 46 | } |
| 47 | int mid = (l + r) >> 1; |
| 48 | init(k << 1, l, mid); |
| 49 | init(k << 1 | 1, mid + 1, r); |
| 50 | m_tree[k] = m_tree[k << 1]; |
| 51 | } |
| 52 | |
| 53 | void insert(int k, int l, int r, int ll, int rr, PLI info) { |
| 54 | if (l == ll && rr == r) { |