(int jobl, int jobr, int l, int r, int i)
| 277 | } |
| 278 | |
| 279 | public static int query(int jobl, int jobr, int l, int r, int i) { |
| 280 | if (i == 0) { |
| 281 | return 0; |
| 282 | } |
| 283 | if (jobl <= l && r <= jobr) { |
| 284 | return sum[i]; |
| 285 | } |
| 286 | int mid = (l + r) >> 1; |
| 287 | int ans = 0; |
| 288 | if (jobl <= mid) { |
| 289 | ans += query(jobl, jobr, l, mid, ls[i]); |
| 290 | } |
| 291 | if (jobr > mid) { |
| 292 | ans += query(jobl, jobr, mid + 1, r, rs[i]); |
| 293 | } |
| 294 | return ans; |
| 295 | } |
| 296 | |
| 297 | public static void add(int x, int v) { |
| 298 | addTree[x] = add(0, v, 0, n - 1, addTree[x]); |