为什么80
查看原帖
为什么80
1367844
DCzzy楼主2024/12/21 19:40
#include<bits/stdc++.h>

using namespace std;

int ans=0;
int n,s,c1,d;
int a[10000],b[10000],c[10000];

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;
}
2024/12/21 19:40
加载中...