简洁易懂带注释题解
2026-02-09 15:02:37
发布于:上海
11阅读
0回复
0点赞
#include<iostream>
#include<algorithm>
using namespace std;
int n, s;
int a, b, cnt;
struct apple{//结构体:苹果高度及所耗力气
int x;
int y;
}w[5001];
bool cmp(apple a, apple b){//排序函数
if(a.y == b.y){//若相等则矮一点的排前面
return a.x < b.x;
}
return a.y < b.y;//所耗力气小的苹果排前面
}
int main(){
cin >> n >> s;
cin >> a >> b;
for(int i = 0; i < n; i++){
cin >> w[i].x >> w[i].y;
}
sort(w, w + n, cmp);
for(int i = 0; i < n; i++){
if(w[i].x <= a + b && s - w[i].y >= 0){//若能摘到,且摘完后还有力气,则计数变量自增1
cnt++;
s -= w[i].y;
}
}
cout << cnt;
return 0;
}
全部评论 1
制作不易,留赞后去
2026-02-09 来自 上海
0






有帮助,赞一个