输入1删除第(n+1)/2个元素,输入0插入元素
#include<iostream>
#include <set>
using namespace std;
multiset<int>se1, se2;
int main() {
int n, x, t;
while (scanf("%d", &n) != EOF) {
se1.clear();
se2.clear();
t = 0;
while (n--) {
scanf("%d", &x);
if (x) {
if (t == 0)printf("No Element!\n");
else {
if (t & 1) {
printf("%d\n", *se2.begin());
se2.erase(se2.begin());
} else {
printf("%d\n", *--se1.end());
se1.erase(--se1.end());
}
t--;
}
} else {
scanf("%d", &x);
if (x >= *se2.begin()) {
se2.insert(x);
if (se2.size() - se1.size() == 2) {
se1.insert(*se2.begin());
se2.erase(se2.begin());
}
} else {
se1.insert(x);
if (se1.size() > se2.size()) {
se2.insert(*--se1.end());
se1.erase(--se1.end());
}
}
t++;
}
}
printf("\n");
}
}
活用stl还是比较重要的