o分求调
查看原帖
o分求调
1406403
dahao_667楼主2024/8/8 15:54

代码如下

#include<bits/stdc++.h>
using namespace std;
int i,j,s1,s2,s3,s4,e,k,maxn,minn,ans;
int a1[30],a2[30],a3[30],a4[30];
int main()
{
	scanf("%d%d%d%d",&s1,&s2,&s3,&s4);
	for(i=1;i<=s1;i++)
		scanf("%d",&a1[i]);
	for(i=1;i<=s2;i++)
		scanf("%d",&a2[i]);
	for(i=1;i<=s3;i++)
		scanf("%d",&a3[i]);
	for(i=1;i<=s4;i++)
		scanf("%d",&a4[i]);
	for(i=1;i<=s1;i++)
		for(j=1;j<=s1-i;j++)
			if(a1[j]<a1[j+1])
			{
				e=a1[j];
				a1[j]=a1[j+1];
				a1[j+1]=e;
			}
	for(i=1;i<=s2;i++)
		for(j=1;j<=s2-i;j++)
			if(a2[j]<a2[j+1])
			{
				e=a2[j];
				a2[j]=a2[j+1];
				a2[j+1]=e;
			}
	for(i=1;i<=s3;i++)
		for(j=1;j<=s3-i;j++)
			if(a3[j]<a3[j+1])
			{
				e=a3[j];
				a3[j]=a3[j+1];
				a3[j+1]=e;
			}
	for(i=1;i<=s4;i++)
		for(j=1;j<=s4-i;j++)
			if(a4[j]<a4[j+1])
			{
				e=a4[j];
				a4[j]=a4[j+1];
				a4[j+1]=e;
			}
	while(a1[1]!=0)
	{
		if(s1==1)
		{
			ans+=a1[1];
			break;
		}
		else
			ans+=min(a1[1],a1[2]);
		maxn=max(a1[1],a1[2]);
		minn=min(a1[1],a1[2]);
		if(a1[2]>a1[1])
		{
			a1[2]=maxn-minn;
			a1[1]=0;
		}
		else
		{
			if(a1[2]<a1[1])
			{
				a1[1]=maxn-minn;
				a1[2]=0;
			}
			else
			{
				a1[1]=0;
				a1[2]=0;
				s1--;
			}
		}
		if(a1[1]==0)
			for(k=1;k<=s1;k++)
				a1[k]=a1[k+1];
		if(a1[2]==0)
			for(k=2;k<=s1;k++)
				a1[k]=a1[k+1];
		s1--;
	}
	while(a2[1]!=0)
	{
		if(s2==1)
		{
			ans+=a2[1];
			break;
		}
		else
			ans+=min(a2[1],a2[2]);
		maxn=max(a2[1],a2[2]);
		minn=min(a2[1],a2[2]);
		if(a2[2]>a2[1])
		{
			a2[2]=maxn-minn;
			a2[1]=0;
		}
		else
		{
			if(a2[2]<a2[1])
			{
				a2[1]=maxn-minn;
				a2[2]=0;
			}
			else
			{
				a2[1]=0;
				a2[2]=0;
				s2--;
			}
		}
		if(a2[1]==0)
			for(k=1;k<=s2;k++)
				a2[k]=a2[k+1];
		if(a2[2]==0)
			for(k=2;k<=s2;k++)
				a2[k]=a2[k+1];
		s2--;
	}
	while(a3[1]!=0)
	{
		if(s3==1)
		{
			ans+=a3[1];
			break;
		}
		else
			ans+=min(a3[1],a3[2]);
		maxn=max(a3[1],a3[2]);
		minn=min(a3[1],a3[2]);
		if(a3[2]>a3[1])
		{
			a3[2]=maxn-minn;
			a3[1]=0;
		}
		else
		{
			if(a3[2]<a3[1])
			{
				a3[1]=maxn-minn;
				a3[2]=0;
			}
			else
			{
				a3[1]=0;
				a3[2]=0;
				s3--;
			}
		}
		if(a3[1]==0)
			for(k=1;k<=s3;k++)
				a3[k]=a3[k+1];
		if(a3[2]==0)
			for(k=2;k<=s3;k++)
				a3[k]=a3[k+1];
		s3--;
	}
	while(a4[1]!=0)
	{
		if(s4==1)
		{
			ans+=a4[1];
			break;
		}
		else
			ans+=min(a4[1],a4[2]);
		maxn=max(a4[1],a4[2]);
		minn=min(a4[1],a4[2]);
		if(a4[2]>a4[1])
		{
			a4[2]=maxn-minn;
			a4[1]=0;
		}
		else
		{
			if(a4[2]<a4[1])
			{
				a4[1]=maxn-minn;
				a4[2]=0;
			}
			else
			{
				a4[1]=0;
				a4[2]=0;
				s4--;
			}
		}
		if(a4[1]==0)
			for(k=1;k<=s4;k++)
				a4[k]=a4[k+1];
		if(a4[2]==0)
			for(k=2;k<=s4;k++)
				a4[k]=a4[k+1];
		s4--;
	}
	printf("%d",ans);
	return 0;
}``````
2024/8/8 15:54
加载中...