比赛 |
贪心题目练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
超市 |
最终得分 |
100 |
用户昵称 |
OTTF |
运行时间 |
0.788 s |
代码语言 |
C++ |
内存使用 |
3.54 MiB |
提交时间 |
2025-03-22 14:49:49 |
显示代码纯文本
#include <algorithm>
#include <cstdio>
#include <iostream>
#include <queue>
#include <utility>
using namespace std;
int n;
pair<int, int> num[11451];
int main () {
freopen ("supermarket.in", "r", stdin);
freopen ("supermarket.out", "w", stdout);
while (cin >> n) {
for (int i = 1; i <= n; i++) {
cin >> num[i].second >> num[i].first;
}
sort (num + 1, num + 1 + n);
priority_queue<int> pq;
for (int i = 1; i <= n; i++) {
if (pq.size() < num[i].first) {
pq.push(-num[i].second);
}
else {
if (-pq.top() < num[i].second) {
pq.pop();
pq.push(-num[i].second);
}
}
}
int res = 0;
while (!pq.empty()) {
res -= pq.top();
pq.pop();
}
cout << res << endl;
}
return 0;
}