求大佬差错
查看原帖
求大佬差错
206423
焚魂楼主2020/5/30 21:40
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>

using namespace std;

int s1,s2,s3,s4,a[30],b[30],c[30],d[30],ans,t;

int main()
{
	cin>>s1>>s2>>s3>>s4;
	for(int i=1;i<=s1;i++)
	cin>>a[i];
	for(int i=1;i<=s2;i++)
	cin>>b[i];
	for(int i=1;i<=s3;i++)
	cin>>c[i];
	for(int i=1;i<=s4;i++)
	cin>>d[i];
	
	if(s1==1)
	ans+=a[1];
	else if(s1==2)
	ans+=max(a[1],a[2]);
	else
	{
		t=a[1];
		for(int i=2;i<=s1;i++)
		{
			if(i==s1)
			{
			  ans+=max(t,a[s1]);
			  break;
			}
			else
			{
				ans+=min(t,a[i]);
				t=abs(t-a[i]);
			}
		}
	}
	
	if(s2==1)
	ans+=b[1];
	else if(s2==2)
	ans+=max(b[1],b[2]);
	else
	{
		t=b[1];
		for(int i=2;i<=s2;i++)
		{
			if(i==s2)
			{
			  ans+=max(t,b[s2]);
			  break;
			}
			else
			{
				ans+=min(t,b[i]);
				t=abs(t-b[i]);
			}
		}
	}
	
	if(s3==1)
	ans+=c[1];
	else if(s3==2)
	ans+=max(c[1],c[2]);
	else
	{
		t=c[1];
		for(int i=2;i<=s3;i++)
		{
			if(i==s3)
			{
			  ans+=max(t,c[s3]);
			  break;
			}
			else
			{
				ans+=min(t,c[i]);
				t=abs(t-c[i]);
			}
		}
	}
	
	if(s4==1)
	ans+=d[1];
	else if(s4==2)
	ans+=max(d[1],d[2]);
	else
	{
		t=d[1];
		for(int i=2;i<=s4;i++)
		{
			if(i==s4)
			{
			  ans+=max(t,d[s4]);
			  break;
			}
			else
			{
				ans+=min(t,d[i]);
				t=abs(t-d[i]);
			}
		}
	}
	
	cout<<ans;
	
	return 0;
}
2020/5/30 21:40
加载中...