社区讨论
CE求助
学术版参与者 3已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @lo8msmmu
- 此快照首次捕获于
- 2023/10/27 21:10 2 年前
- 此快照最后确认于
- 2023/10/27 21:10 2 年前
代码莫名其妙报错,VSCode没有检测出来语法错误,但一编译运行就会炸掉。
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 条回复,欢迎继续交流。
正在加载回复...