求助,玄关
查看原帖
求助,玄关
740254
To_2051楼主2024/8/27 15:48

rt

#include<bits/stdc++.h>
using namespace std;
long long a[100001];
int main()
{
	int t,n;
cin>>t;
while(t--)
{
	int ans=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	if(n==2)
    {
        cout<<(a[1]==a[2]?0:-1)<<endl;
        goto end;
    }
		for(int i=2;i<n;i++)
		{
			if(a[i]>a[i+1]) 
			{
				a[i]-=(a[i]-a[i+1]);
				a[i-1]-=(a[i]-a[i+1]);
				ans+=2*(a[i]-a[i+1]);
			}
			if (a[i]>a[i-1])
       		{
        		a[i+1]-=(a[i]-a[i-1]);
          	  	a[i]-=(a[i]-a[i-1]);
          	  	ans+=2*(a[i]-a[i-1]);
      	  	}
		}
		for(int i=n-1;i>1;i--) 
		{
			if(a[i]>a[i+1])
			{
				a[i]-=(a[i]-a[i+1]);
				a[i-1]-=(a[i]-a[i+1]);
				ans+=2*(a[i]-a[i+1]);
			}	
			if (a[i]>a[i-1])
       		{
        		a[i+1]-=(a[i]-a[i-1]);
          	  	a[i]-=(a[i]-a[i-1]);
          	  	ans+=2*(a[i]-a[i-1]);
      	  	}
		}
	for(int i=1;i<n;i++)
	{
		if(a[i]!=a[i+1]||a[i]<0)
		{
			cout<<-1<<endl;
			goto end;
		}
	}
	cout<<ans<<endl;
end:;}
	return 0;
}

2024/8/27 15:48
加载中...