(int u, int x, int k)
| 195 | } |
| 196 | |
| 197 | public static int kthMax(int u, int x, int k) { |
| 198 | for (int p = MAXP - 1; p >= 0; p--) { |
| 199 | if (stjump[u][p] > 0 && nodeKey[stjump[u][p]] <= x) { |
| 200 | u = stjump[u][p]; |
| 201 | } |
| 202 | } |
| 203 | if (leafsiz[u] < k) { |
| 204 | return 0; |
| 205 | } |
| 206 | int idx = query(k, 1, s, root[leafDfnMin[u] - 1], root[leafDfnMin[u] + leafsiz[u] - 1]); |
| 207 | return sorted[idx]; |
| 208 | } |
| 209 | |
| 210 | public static void main(String[] args) { |
| 211 | FastIO io = new FastIO(System.in, System.out); |