(int l, int r, int i, int num)
| 36 | } |
| 37 | |
| 38 | public static void split(int l, int r, int i, int num) { |
| 39 | if (i == 0) { |
| 40 | right[l] = left[r] = 0; |
| 41 | } else { |
| 42 | if (key[i] <= num) { |
| 43 | right[l] = i; |
| 44 | split(i, r, right[i], num); |
| 45 | } else { |
| 46 | left[r] = i; |
| 47 | split(l, i, left[i], num); |
| 48 | } |
| 49 | up(i); |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | public static int merge(int l, int r) { |
| 54 | if (l == 0 || r == 0) { |