思想:时间倒流,逆向思维
#include<bits/stdc++.h>
#ifdef LOCAL
#endif
#define int long long
using namespace std;
pair<int,int>a[100005];
int n,sum,ma=0x3f3f3f3f;
priority_queue<int>q;
signed main() {
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld%lld",&a[i].first,&a[i].second);
}
sort(a+1,a+n+1);
for(int i=n;i>=0;i--){
while(!q.empty()&&ma>a[i].first){
sum+=q.top();q.pop();
ma--;
}
ma=a[i].first;
q.push(a[i].second);
}
printf("%lld",sum);
return 0;
}