代码如下:
#include <iostream>
#include <queue>
#include <string>
using namespace std;
priority_queue<int> q1;
priority_queue<int, vector<int>, greater<int> > q2;
int main() {
int n, x, mid, m, cnt;
string s;
cin >> n >> mid;
for (int i = 2; i <= n; ++i) {
cin >> x;
if (x < mid)
q1.push(x);
else
q2.push(x);
}
cin >> m;
while (m--) {
cin >> s;
if (s == "add") {
cin >> x;
if (x < mid)
q1.push(x);
else
q2.push(x);
cnt = q1.size() + q2.size() + 1;
} else if (s == "mid") {
if (cnt % 2) {
if (q1.size() < q2.size())
while (q1.size() != q2.size()) {
q1.push(mid);
mid = q2.top();
q2.pop();
}
else if (q1.size() > q2.size())
while (q1.size() != q2.size()) {
q2.push(mid);
mid = q1.top();
q1.pop();
}
} else {
if (q1.size() < q2.size() - 1)
while (q1.size() != q2.size() - 1) {
q1.push(mid);
mid = q2.top();
q2.pop();
}
else if (q1.size() > q2.size())
while (q1.size() != q2.size() - 1) {
q2.push(mid);
mid = q1.top();
q1.pop();
}
}
cout << mid << '\n';
}
}
return 0;
}
1、4、5、6点随机MLE,求dalao帮助