60分求助
查看原帖
60分求助
1268524
DX3906_ourstar楼主2024/7/10 10:48
#include<iostream>
#include<algorithm>
using namespace std;

int n,s,a,b,h,cnt;
struct apple{//用结构体表示每一个苹果,方便看 
	int x,y;
}apples[114514];

bool cmp(apple a,apple b){//将力气作为排序依据,确保最省力 
	return a.y < b.y;
}

signed main(){
	cin>>n>>s;
	cin>>a>>b;
	h = a + b;//h表示能够到的高度 
	for(int i = 0;i < n;i ++){
		cin>>apples[i].x>>apples[i].y;
	}
	sort(apples,apples + n,cmp);//排序 
	for(int i = 0;i < n;i ++){//统计 
		if(apples[i].x < h){//能够到 
			if(s > 0){//还有力气 
				if(s >= apples[i].y){//力气足够 
					s -= apples[i].y;
					cnt ++;
				}
			}else{//没力气了,退出统计 
				break;
			}
		}
	}
	cout<<cnt;//输出 
	return 0;
}
2024/7/10 10:48
加载中...