求解一道Dev C++的解法。具体如下。

1个回答

  • #include

    int h[5002],m[5002],i=1,s,n,a,b,j=1,ans;

    void kp(int l,int r)

    {

    int i=l,j=r,x,t;

    x=m[(i+j)/2];

    while(i<=j)

    {

    while(m[i]

    while(x

    if(i<=j)

    {

    t=m[i];

    m[i]=m[j];

    m[j]=t;

    i++;

    j--;

    }

    }

    if(l

    if(i

    }

    int main()

    {

    scanf("%d%d%d%d",&n,&s,&a,&b);

    for(i=1;i<=n;i++)

    {

    scanf("%d%d",&h[j],&m[j]);

    if(h[j]<=a+b)

    {

    j++;

    }

    }

    j--;

    kp(1,j);

    for(i=1;i<=j;i++)

    {

    if(m[i]<=s)

    {

    s-=m[i];ans++;

    }

    }

    printf("%dn",ans);

    return 0;

    }