便于理解的
2024-07-10 10:53:08
发布于:江苏
13阅读
0回复
0点赞
#include<iostream>
#include<algorithm>
using namespace std;
struct Apple{
int height;
int need_energy;
bool can_picked=false;//这个苹果能摘得到吗?
}apple[5001];
bool cmp(Apple a,Apple b){
return a.need_energy<b.need_energy;
}
int main(){
int n;
int k;//还剩的力气
cin>>n>>k;
int a,b;
cin>>a>>b;
int he_can_hide=a+b;//小码王可以摘到的最大高度
for(int i=1;i<=n;i++){
cin>>apple[i].height;
cin>>apple[i].need_energy;
apple[i].can_picked = (he_can_hide>=apple[i].height);
}
sort(apple+1,apple+n+1,cmp);
int cnt=0;//摘了几个了
int i=1;
while(i<=n&&k>0){
if(apple[i].can_picked==true){
if(k>=apple[i].need_energy){
k-=apple[i].need_energy;
cnt++;
}
}
++i;
}
//用for()也可以
cout<<cnt;
return 0;
}
这里空空如也
有帮助,赞一个