60分,有注释
查看原帖
60分,有注释
1120932
ansan楼主2023/12/13 21:32
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n, s, a, b, x[30000], y[20000], i, j, count = 0, sum = 0;
	cin >> n >> s;
	cin >> a >> b;
	for(i = 1; i <= n; i++){
		cin >> x[i] >> y[i];
	}
	for(i = 1; i <= n; i++){
		if(i == n && x[i] > a+b){
			y[i] = 100000;//防止当i == n时无法把y[i[去掉;		
		}
		if(a+b < x[i]){
			for(j = i; j < n; j++)//把数组往前移,同时把a[i]给去掉; 
				x[j] = x[j+1];
			for(j = i; j < n; j++)
				y[j] = y[j+1];
				n--;
		}
	}
		sort(y+1, y+n+1);//用sort进行排序; 
		for(i = 1; i <= n; i++){
			if(sum + y[i] <= s){//条件累加; 
				sum += y[i];
			count++;
			}
		}
		cout << count;
	return 0;
}
2023/12/13 21:32
加载中...