感觉思路没什么问题,请大佬指错
查看原帖
感觉思路没什么问题,请大佬指错
1189413
PURE_LOVE楼主2024/3/27 21:45
#include<bits/stdc++.h>
using namespace std;
int b[4]={0,0,0,0};
int sum=0;
bool cmp(int a, int b)
{
	if (a >= b)
	{
		return true;
	}
	return false;
}
void input(int*arr, int n,int book)
{
	for (int i=0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	return;
}
void hanshu(int*arr,int n)
{
	
	for (int i=0; i < n; i++)
	{
		if (arr[i]==0)
		{
			return;
		}
		sum+=arr[i];
		for (int j=n-1; j>i; j--)
		{
			if (arr[i]==0)
			{
				break;
			}
			int temp=arr[i];
			if (arr[j]<=temp)
			{
				arr[i]-=arr[j];
				arr[j]=0;
			}
			else
			{
				arr[j]-=temp;
				arr[i]=0;
			}
		}
	}
	return;
}
int main()
{
	int a[4]={ 0,0,0,0 };
	scanf("%d%d%d%d", &a[0], &a[1], &a[2], &a[3]);
	int**arr=(int**)calloc(4, sizeof(int*));
	for (int i=0; i < 4; i++)
	{
		arr[i]=(int*)calloc(a[i], sizeof(int));
	}
	input(arr[0], a[0], 0);
	input(arr[1], a[1], 1);
	input(arr[2], a[2], 2);
	input(arr[3], a[3], 3);
	for (int i=0; i<4; i++)
	{
		sort(arr[i], arr[i]+a[i],cmp);
		hanshu(arr[i],a[i]);
	}
	printf("%d",sum);
	return 0;
}```cpp
2024/3/27 21:45
加载中...