这道题作为结构体的使用,以及排序算法应用的小例子。
#include<iostream>
#include<algorithm>
using namespace std;
struct apple {
int height;
int power;
}info[5000];
bool cmp(apple ax, apple ay) {
return ax.power < ay.power;
}
int main() {
int n = 0, s = 0, a = 0, b = 0,flag=0;
cin >> n >> s >> a >> b;
int x = 0, y = 0,maxlen=0;
maxlen = a + b;
for (int i = 0; i < n; i++) {
cin >> x >> y;
info[i].height = x;
info[i].power = y;
}
sort(info, info + n, cmp);
for (int i = 0; i < n; i++) {
if (info[i].height <= maxlen && info[i].power <= s) {
++flag;
s = s - info[i].power;
}
}
cout << flag;
return 0;
}