Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cctype>#include <cstdio>#include <algorithm>using namespace std;const int N = int(2e5) + 50, inf = int(2e9) + 7;int axis[N * 2], A[N];struct query { int l, r, k; } Q[N];int n, m, p;struct tree { int cnt; tree *lc, *rc; } TBf[int(8e6)], *TC = TBf, *root[N];tree* insert (tree *t, int l, int r, int p){tree *ret = TC++;*ret = t ? (tree){t->cnt + 1, t->lc, t->rc} : (tree){1, NULL, NULL};if (l == r){return ret;}int m = (l + r) >> 1;if (p <= m){ret->lc = insert(ret->lc, l, m, p);}else{ret->rc = insert(ret->rc, m + 1, r, p);}return ret;