P1478 陶陶摘苹果(升级版)

问题遇到的现象和发生背景

img

img

P1478 陶陶摘苹果(升级版)
输出结果为7,不知道哪里错了。

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
int x[5005],y[5005],z[5005];
int main ()
{
    int n,s,a,b,sum=0,temp,count=0;
    scanf("%d&d",&n,&s);
    scanf("%d%d",&a,&b);
    for(int i=0;i<n;i++)
        scanf("%d%d",&x[i],&y[i]);
    for(int j=0;j<n;j++)
    {
        if(x[j]<=a+b)
            z[sum++]=y[j];
    }
    for(int i=1;i<sum;i++)
        for(int j=0;j<sum-i;j++)
        {
            if(z[j]>z[j+1])
            {
                temp=z[j+1];
                z[j+1]=z[j];
                z[j]=temp;
            }
        }
    for(int i=0;i<sum&&s>=z[i];i++)
    {
        s-=z[i];
        count++;
    }
    printf("%d",count);
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
struct apple{
    int high;
    int liqi;
}aa[5001];
bool cmp(apple a,apple b){
    return a.liqi<b.liqi;
}
int main(){
        int n,s,a,b,ans=0;
        cin>>n>>s>>a>>b;
        for(int i=0;i<n;i++){
            scanf("%d%d",&aa[i].high,&aa[i].liqi);
        }
        sort(aa,aa+n,cmp);
        for(int i=0;i<n;i++){
            if(s<=0) break;
            if(aa[i].high<=(a+b) && aa[i].liqi<=s){
                ans++;
                s-=aa[i].liqi;
            }
        }
        cout<<ans<<endl;
        return 0;
}

这个咋样?有用记得采纳 呐