题解
2024-06-08 16:23:19
发布于:上海
17阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
struct men{
int skill;
int acceptable;
};
int cmd(men x,men y){
return x.skill>y.skill;
}
int main(){
int n;cin>>n;men list1[200000];
long long max = -999;
for(int i=0;i<n;i++){
cin>>list1[i].skill;
cin>>list1[i].acceptable;
if(list1[i].acceptable>=max){
max = list1[i].acceptable;
}
}sort(list1,list1+n,cmd);
long long max1 = -999;
for(int i=1;i<=max;i++){
long long bianli = 0;
long long bianli1 = 0;
for(int j=0;j<n;j++){
if(list1[j].acceptable>=i){
bianli += list1[j].skill;
bianli1 ++;
}
if(bianli1 == i){
break;
}
}if(bianli>=max1){max1 = bianli;}
}
cout<<max1;
}
这里空空如也
有帮助,赞一个