社区讨论

CE求助

学术版参与者 3已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo8msmmu
此快照首次捕获于
2023/10/27 21:10
2 年前
此快照最后确认于
2023/10/27 21:10
2 年前
查看原帖
代码莫名其妙报错,VSCode没有检测出来语法错误,但一编译运行就会炸掉。
Code\texttt{Code}
CPP
#include <bits/stdc++.h>

using namespace std;

struct Node {
	int id, ret, wkt, pri;
	bool operator < (Node x) {
		return !(pri != x.pri ? pri > x.pri : ret < x.ret);
	}
};

signed main() {
	priority_queue<Node> pq;
	Node now;
	int sum = 0;
	while (~scanf("%d%d%d%d", &now.id, &now.ret, &now.wkt, &now.pri)) {
		while (!pq.empty() && sum + pq.top().wkt <= now.ret) {
			printf("%d %d\n", pq.top().id, sum + pq.top().wkt);
			sum += pq.top().wkt;
			pq.pop();
		}
		if (!pq.empty()) {
			Node tmp = pq.top();
			pq.pop();
			tmp.wkt -= now.ret - sum;
			pq.push(tmp);
		}
		pq.push(now);
		sum = now.ret;
	}
	while (!pq.empty()) {
		printf("%d %d\n", pq.top().id, sum += pq.top().wkt);
		// cout << "QWQ:" << pq.size() << '\n';
		pq.pop();
	}
	return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...