题面
输入样例
4 50 2 10 1 20 2 30 1
7 20 1 2 1 10 3 100 2 8 2
5 20 50 10
输出样例
80
185
题解
代码
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
typedef pair<int, int> PII;
const int N = 1e4 + 10;
int main() {
int n;
while (cin >> n) {
PII v[N];
for (int i = 1; i <= n; i++) {
cin >> v[i].second >> v[i].first;
}
sort(v + 1, v + 1 + n);
priority_queue<int, vector<int>, greater<int>> pq;
for (int i = 1; i <= n; i++) {
pq.push(v[i].second);
if(pq.size()>v[i].first){
pq.pop();
}
}
int res=0;
while (pq.size()){
res+=pq.top();
pq.pop();
}
cout<<res<<endl;
}
return 0;
}