@[liujia_31](/user/1190072) 拿你的代码做了尽可能少的改动,凑合着看吧。
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,s,a,b,ans;
struct node{
int x;
int y;
}c[10086];
bool cmp(node x1,node x2)
{
return x1.y < x2.y;
}
int main()
{
cin >> n >> s >> a >> b;
for (int i=1;i<=n;i++)
{
cin >> c[i].x >> c[i].y;
}
sort(c+1,c+n+1,cmp);
for (int i=1;i<=n;i++)
{
if (a + b >= c[i].x && s >= c[i].y)
{
ans++;
s = s - c[i].y;
}
}
cout << ans << endl;
return 0;
}
```
by Super_Cube @ 2024-01-31 21:52:21
@[liujia_31](/user/1190072) 首先 `ans` 的初始值不懂为什么你要设置,其次题目中的条件是 $s<0$ 而不是 $s\leqslant0$,所以下面循环里是 `s >= c[i].y`。
by Super_Cube @ 2024-01-31 21:53:43
@[Super_Cube](/user/481893) 昂 看懂了看懂了 没注意题目条件[捂脸] 谢谢大佬 谢谢大佬
by liujia_31 @ 2024-02-01 09:07:47