| 93 | t[n] = combine(t[2 * n], t[2 * n + 1]); |
| 94 | } |
| 95 | inline pair<int, int> query(int n, int l, int r, int ql, int qr) { |
| 96 | push(n, l, r); |
| 97 | if (l > qr || r < ql) return make_pair(1e9, 0); |
| 98 | if (l >= ql && r <= qr) return t[n]; |
| 99 | int mid = l + r >> 1; |
| 100 | pair<int, int> left = query(2 * n, l, mid, ql, qr); |
| 101 | pair<int, int> rght = query(2 * n + 1, mid + 1, r, ql, qr); |
| 102 | return combine(left, rght); |
| 103 | } |
| 104 | queue<pair<int, int>> Q; |
| 105 | int32_t main() { |
| 106 | ios_base::sync_with_stdio(0); |