随机MLE求助!
查看原帖
随机MLE求助!
378951
farfarqwq楼主2021/10/20 20:30

代码如下:

#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,求dalaodalao帮助

2021/10/20 20:30
加载中...