4个WA,求助
查看原帖
4个WA,求助
1292414
LeonTexius楼主2024/9/24 18:29
#include<bits/stdc++.h>
using namespace std;
int n,s,a,b;
int apples[5005][4];
int can;

int main()
{
	scanf("%d %d",&n,&s);
	scanf("%d %d",&a,&b);
	for(int i = 1;i <= n;i++)
	{
		scanf("%d %d",&apples[i][1],&apples[i][2]);
		if(apples[i][1] < (a + b))
		{
			apples[i][3] = -1;
			
		}
	}
	for (int i = 1; i < n; i++) {
		
		bool swapped = false;
		for (int j = 1; j < n - i; j++) {
			if ((apples[j][1] > apples[j + 1][1]) && apples[j][3] == 0 && apples[j + 1][3] == 0) 
			{
				
			    swap(apples[j][1],apples[j + 1][1]);
				swap(apples[j][2],apples[j + 1][2]);
				swap(apples[j][3],apples[j + 1][3]);
				swapped = true;
			}
		}
		if (swapped == false)
			break;
	}
	for(int i = 1;i <= n;i++)
	{
		if((apples[i][1] <= (a + b)) && (apples[i][2] <= s) && apples[i][3] == 0)
		{
			can++;
			s -= apples[i][2];
		}
		if(apples[i][2] < s)
		{
			break;
		}
	}
	printf("%d",can);
	
	return 0;
	
	
}
2024/9/24 18:29
加载中...