跪求dalao!倒数第二个测试点过不了,RE,求教!!!

P1478 陶陶摘苹果(升级版)

沸反盈天 @ 2018-10-11 09:30:42

#include<iostream>
#include<algorithm>
using namespace std;
int x[5001],y[5001],can[5001];
int main()
{
    int n,s,a,b,ans=0,k=0;
    cin>>n>>s>>a>>b;
    for(int i=1;i<=n;i++)
    {   
        cin>>x[i]>>y[i];
        if(x[i]<=a+b)
        {
            k++;
            can[k]=y[i];
        }
    }
    sort(can+1,can+k+1);
    int i=1;
    while(s>=0)
    {
        s-=can[i];
        i++;
        ans++;
    }
    cout<<ans-1;
    return 0;
}

难道不是用贪心吗?应该是用贪心。。。


by Irisky @ 2018-10-11 09:50:27

for试试

for(i=1;i<=n;i++)
     {
        if(s-can[i].b<0)break;
        if(x[i]<=a+b)
        {
        s-=can[i];
        ans++;
        }
        else continue;
    }
    还有,贴代码能不能不要用这些看不懂的变量啊。。。。

by 沸反盈天 @ 2018-10-11 19:14:35

@栤SADA ...好的(那个can是指能被摘下来的苹果。。。)


by saipubw @ 2018-10-13 05:03:55

倒数第二个全是0…… 那个你特判一下吧,真是坑爹


|