liujia_31 @ 2024-01-31 21:40:01
改来改去测试点一就是不过 其他都对 来个人救救孩子吧 生无可恋了QAQ
#include <bits/stdc++.h>
using namespace std;
int n,s,a,b,ans = 1;
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 (s > c[i].y && a + b >= c[i].x)
{
ans++;
s = s - c[i].y;
}
}
cout << ans << endl;
return 0;
}
by Super_Cube @ 2024-01-31 21:52:21
@liujia_31 拿你的代码做了尽可能少的改动,凑合着看吧。
#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:53:43
@liujia_31 首先 ans
的初始值不懂为什么你要设置,其次题目中的条件是 s >= c[i].y
。
by liujia_31 @ 2024-02-01 09:07:47
@Super_Cube 昂 看懂了看懂了 没注意题目条件[捂脸] 谢谢大佬 谢谢大佬