解析:
题意要求动态的求中位数,参考别人的方法是先开两个优先队列。
以及利用一个队列来模拟管道。
然后左边升序,右边降序,右边个数-左边个数>=1,然后右边询问的时候直接输出右边最小的,然后看看是左边还是右边的,把对应的那边的个数-1,如果发现(右边个数-左边个数>=1)这个条件不满足了,那么就权衡下,两个队列里面的元素处理下(左给右或者右给左),总的时间复杂度与数据无关,是O(n*log(n))。
AC代码:
#include <cstdio>
#include <cstring>
#include <set>
#include <queue>
using namespace std;
set<int> stL, stR;