【牛客一道模板】
struct MidNum {multiset<int> p, q;//p 从大到小 q从小到大void work() {while (p.size() > q.size() + 1) {q.insert(*p.rbegin());p.erase(--p.end());}while (p.size() < q.size()) {p.insert(*q.begin());q.erase(q.begin());}}void add(int x) {if (!q.empty() && x >= *q.begin()) {q.insert(x);}else {p.insert(x);}work();}void del(int x) {if (q.contains(x)) {q.erase(q.lower_bound(x));}else if (p.contains(x)) {p.erase(p.lower_bound(x));}work();}int get_mid() {return *p.rbegin();}/*偶数时中位数;*/int get_even_mid() {return (*p.rbegin() + *q.begin()) / 2;}
};