玄君 @ 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]