田钰皓 • 7个月前
using namespace std; struct joker{
int f,t;
}t[201]; bool cmp(joker a,joker b){
return a.f>b.f;
} int main(){
int n,m,k,cnt[101]={},sum=0;
cin>>n>>m>>k;
for(int i=1;i<=k;i++)
{
cin>>cnt[i];
}
for(int i=1;i<=n;i++){
cin>>t[i].f>>t[i].t;
}
sort(t+1,t+n+1,cmp);
for(int i=1;i<=n;i++){
if(m==0){
break;
}
if(cnt[t[i].t]){
if(cnt[t[i].t]&&m){
m--;
sum+=t[i].f;
cnt[t[i].t]--;
}
}
}
cout<<sum;
return 0;
}
评论: