DCzzy @ 2024-12-22 10:17:35
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll ans=0;
ll n,s,c1,d;
ll a[1000000],b[1000000],c[1000000];
int main()
{
cin>>n>>s>>c1>>d;
for (int i=1;i<=n;i++)
{
cin>>a[i];//苹果高度
cin>>b[i];//苹果力气
}
for (int i=1;i<=n;i++)
{
b[i]=b[i]*1000+i;//方便保存索引和排序
}
c1+=d;//椅子+人高
sort(b+1,b+n+1);//排序
for (int i=1;i<=n;i++)
{
c[i]=b[i]%1000;//数组c保存索引
}
for (int i=1;i<=n;i++)
{
b[i]/=1000;//还原力气
}
for (int i=1;i<=n;i++)
{
if(s<0) break;
if (a[c[i]]<=c1/*判断高度*/&&s>=b[i]/*判断力气*/)
{
ans++;//可以拿的苹果数目
s-=b[i];//减力气
}
}
cout<<ans;//输出
return 0;
}
by DCzzy @ 2024-12-22 10:18:28
在我的代码上改awa
by gaohongyuan @ 2024-12-24 12:39:54
用结构体不然全乱了;(a数组和b数组)