救命求救为什么这道题我写错了
查看原帖
救命求救为什么这道题我写错了
576639
woshishabi11451444楼主2022/10/3 11:22
#include<bits/stdc++.h>
using namespace std;
int n,w,ans;
struct node{
	int a,b;
	bool flag;
};
node player[10010];
bool cmp1(node a,node b){
	return a.b>b.b&&a.a<a.b;
}
bool cmp2(node a,node b){
	return a.a>b.a;
}
int main(){
	cin>>n>>w;
	for(int i=1;i<=n;i++){
		cin>>player[i].a>>player[i].b;
	}
	sort(player+1,player+n+1,cmp1);
	for(int i=1;i<=n;i++){
		if(!player[i].flag&&player[i].a<player[i].b&&n!=1){
			w-=player[i].b;
			player[i].flag=true;
			ans++;
		}
	}
	sort(player+1,player+n+1,cmp2);
	while(w!=0){
		for(int i=1;i<=n;i++){
			if(!player[i].flag){
				w-=player[i].a;
				player[i].flag=true;
			}
		}
	}
	if(n==1){
		ans=w/player[n].a;
		if(w%player[n].a<player[n].b){
			ans++;
		}
		else{
			ans+=w%player[n].a/player[n].b;
		}
	}
	cout<<ans;			
	return 0;
}
2022/10/3 11:22
加载中...