mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-11-27 17:16:28 +00:00
41 lines
881 B
C++
41 lines
881 B
C++
#include <iostream>
|
|
#include <algorithm>
|
|
#include <queue>
|
|
|
|
using namespace std;
|
|
|
|
struct node {
|
|
int expire, value;
|
|
|
|
const bool operator<(const node& b) const {
|
|
return expire > b.expire;
|
|
}
|
|
} a[10005];
|
|
|
|
int main() {
|
|
int n;
|
|
while (cin >> n) {
|
|
int d = 1, ans = 0;
|
|
priority_queue<int> q;
|
|
for (int i = 0; i < n; i++) {
|
|
cin >> a[i].value >> a[i].expire;
|
|
}
|
|
sort(a, a + n);
|
|
a[n].value = a[n].expire = 0;
|
|
for (int i = 0; i < n;) {
|
|
int last = a[i].expire;
|
|
while (a[i].expire == last) {
|
|
q.push(a[i++].value);
|
|
}
|
|
int lim = last - a[i].expire;
|
|
while (q.size() && lim) {
|
|
ans += q.top();
|
|
q.pop();
|
|
lim--;
|
|
}
|
|
}
|
|
cout << ans << endl;
|
|
}
|
|
return 0;
|
|
}
|