满江红,求助
查看原帖
满江红,求助
1374347
MAN24man24楼主2025/2/2 13:43
#include<bits/stdc++.h>
using namespace std;
int n,m,e[100001],c;
struct node{
	int k;
	int l;
}a[100001];
bool cmp(node x,node y){
	if(x.l!=y.l) return x.l<y.l;
	return x.k>y.k;
}
int main(){
	cin>>n>>m>>c;
	for(int i=1;i<=c;i++) cin>>e[i];
	for(int i=1;i<=n;i++) cin>>a[i].k>>a[i].l;
	sort(a+1,a+n+1,cmp);
	long long s;
	for(int i=1;i<=n;i++){
		if(e[a[i].l]!=0&&m!=0){
			m-=1;
			s+=a[i].k;
			e[a[i].l]-=1;
		}
	}
	cout<<s;
	return 0;
}
2025/2/2 13:43
加载中...