wch666 @ 2023-12-26 18:11:51
#3#4过了
#include<bits/stdc++.h>
using namespace std;
int n,s,a,b,ans,sum;
struct apple{
int xi,yi;
}c[5005];
bool cmp(apple x,apple y)
{
if(x.yi == y.yi)
return x.xi<y.yi;
return x.yi<y.yi;
}
int main()
{
cin>>n>>s>>a>>b;
for(int i=1; i<=n; i++)
cin>>c[i].xi>>c[i].yi;
sum=a+b;
sort(c+1,c+n+1,cmp);
for(int i=1; i<=n; i++)
{
if(sum > c[i].xi)
{
if(s > c[i].yi)
{
ans++;
s-=c[i].yi;
}
}
}
// for(int i=1; i<=n; i++)
// cout<<c[i].xi<<" "<<c[i].yi<<endl;
cout<<ans;
return 0;
}
by Coore @ 2023-12-26 18:19:44
@wch666
第一点
陶陶想知道在
说明只要摘的苹果花费的总力气不大于
第二点
如果苹果的高度和陶陶能够到的最大高度是相等的,那么这个苹果是可以摘到的。
所以
for(int i=1; i<=n; i++)
{
if(sum > c[i].xi)
{
if(s > c[i].yi)
{
ans++;
s-=c[i].yi;
}
}
}
中的
sum > c[i].xi
改成
sum >= c[i].xi
还有
s > c[i].yi
改成
s >= c[i].yi
by wch666 @ 2023-12-27 19:59:45
已过,感谢大佬,已关~~