33分求助
查看原帖
33分求助
1155764
ouxiyao楼主2024/7/4 10:56
#include<iostream>
#include<cstdio> 
#include<queue>
#include<algorithm>
using namespace std;
struct shi{
	int sj,lr;
	bool operator<(shi &p){
		if(p.sj==sj)return lr>p.lr;
		else return sj<p.sj;
	}
}a[100010];
priority_queue<int,vector<int>,greater<int> >q;
int main(){
	int n;
	scanf("%d\n",&n);
	for(int i = 1;i<=n;i++){
		scanf("%d %d",&a[i].sj,&a[i].lr);
		q.push(a[i].sj) ;
	}
	sort(a+1,a+1+n);
	int x = 0;
	long long cnt = 0;
	for(int i = 1;i<=n;i++){
		if(x>=q.top())q.pop();
		else{
			cnt+=a[i].lr;
			x++;
			q.pop();
		}
	}
	printf("%lld",cnt);
	return 0;
}
2024/7/4 10:56
加载中...