20分求助,错在哪里了......

P1478 陶陶摘苹果(升级版)

玄君 @ 2020-11-28 22:15:32

以下是代码

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

我认为这道题简单至极恐怖如斯

自测没有问题,但是只过了一个点。

我百思不得其解,于是发出了提问。

求大佬雅正

谢谢


by lxyzpjy @ 2020-11-28 22:19:47

刚开始学OI?


by ⚡zhangjingcan⚡ @ 2020-11-28 22:21:29

@玄君 贪心要排序


by 玄君 @ 2020-11-28 22:24:05

@lxyzpjy 是的,我是刚学的菜鸡(初总生)


by lxyzpjy @ 2020-11-28 22:25:36

你先从小到大排一遍,然后在一个一个判断, 你这么判断肯定不对啊,如果一个体力4的在前面,后面有两个2的体力的就亏了一个不,所以要先排序;


by 玄君 @ 2020-11-28 22:26:25

@lxyzpjy 谢谢


by lxyzpjy @ 2020-11-28 22:27:39

@玄君 不用谢,其实我也是个初中生[doge]


|