Diary_51 @ 2023-12-30 18:32:28
#include<bits/stdc++.h>
using namespace std;
struct pg
{
int x;
int y;
}m[5005];
int cmp(pg p,pg q)
{
return p.x<q.x;
}
int main()
{
int n,a,s,b,z=0;
cin>>n>>s>>a>>b;
for(int i=0;i<n;i++)
{
cin>>m[i].x>>m[i].y;
}
sort(m+0,m+n,cmp);
for(int i=0;i<n;i++)
{
if(s<0)
{
break;
}
if(m[i].x>b)
{
if(m[i].x>b+a)
{
continue;
}
else
{
z++;
s-=m[i].y;
}
}
else
{
z++;
}
}
cout<<z<<endl;
return 0;
}
看不懂为什么错
by Mark_Zhu @ 2024-02-02 11:45:51
话说你为什么要判断m[i].x>b啊,直接判断下面一个不行吗?
还有, @Diary_51,你的 if(m[i].x>b)后面的else为什么不减啊?
这些不会是你没看到or没考虑到吧(在给你台阶下了-_-||)