CMZ15079761339 @ 2024-09-28 09:13:31
我哪里错了???大佬求解!!!
#include <iostream>
using namespace std;
int main(){//懂得都懂
int n,s,a,b,x[10000],y[10000],num=0;
cin>>n>>s;//n代表苹果总数,s代表陶陶搬凳子剩余的力气
cin>>a>>b;//a代表凳子的高度,b代表陶陶手臂的长度
for(int i=0;i<n;i++){
cin>>x[i]>>y[i];//x[i]代表这个苹果的高度,y[i]代表摘这个苹果的所需的力气
if(s>0){//判断陶陶的力气是否为0
if(a+b>=x[i]){//判断是否能摘到苹果
num++;//如果是,苹果数量+1
s-=y[i];//并且减去相应的力气
}
}
}
cout<<num;
return 0;//养成好习惯
}
20分求解!!!
by kaoxiangnb666 @ 2024-09-28 09:17:24
你这个是因为摘了消耗力气大的苹果
by kaoxiangnb666 @ 2024-09-28 09:18:54
比如你有100的体力,第一个苹果所需体力为100,剩下99个苹果所需体力都是1,你这个代码会输出1而不是99
by kaoxiangnb666 @ 2024-09-28 09:20:21
这边的建议是先排序,然后挑小的摘
by zhouzihann @ 2024-09-28 10:01:46
@CMZ15079761339 太努力了
by zhouzihann @ 2024-09-28 10:02:55
少年,你需要sort和struct 的力量
by CMZ15079761339 @ 2024-09-28 10:22:55
@kaoxiangnb666 那么请问怎么排序呢?我不会呀?
by kaoxiangnb666 @ 2024-09-28 12:33:08
@CMZ15079761339 sort(y,y+n);
by kaoxiangnb666 @ 2024-09-28 12:34:16
@zhouzihann 这个不用结构体吧,只需要将摘不到的赋值无限大就行了
by zhouzihann @ 2024-09-28 13:35:17
@kaoxiangnb666 也算一种方法
by zhouzihann @ 2024-09-28 13:35:44
@kaoxiangnb666 但我更习惯struct