0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-11-14 03:58:48 +00:00
OI-codes/POJ/1456/1456.cpp

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;
}