沸反盈天 @ 2018-10-11 09:30:42
#include<iostream>
#include<algorithm>
using namespace std;
int x[5001],y[5001],can[5001];
int main()
{
int n,s,a,b,ans=0,k=0;
cin>>n>>s>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i];
if(x[i]<=a+b)
{
k++;
can[k]=y[i];
}
}
sort(can+1,can+k+1);
int i=1;
while(s>=0)
{
s-=can[i];
i++;
ans++;
}
cout<<ans-1;
return 0;
}
难道不是用贪心吗?应该是用贪心。。。
by Irisky @ 2018-10-11 09:50:27
for试试
for(i=1;i<=n;i++)
{
if(s-can[i].b<0)break;
if(x[i]<=a+b)
{
s-=can[i];
ans++;
}
else continue;
}
还有,贴代码能不能不要用这些看不懂的变量啊。。。。
by 沸反盈天 @ 2018-10-11 19:14:35
@栤SADA ...好的(那个can是指能被摘下来的苹果。。。)
by saipubw @ 2018-10-13 05:03:55
倒数第二个全是0…… 那个你特判一下吧,真是坑爹