为啥样例能过wa声一片?

P1478 陶陶摘苹果(升级版)

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


| 下一页