关于今天T3求调
  • 板块学术版
  • 楼主kele7
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/10/14 20:13
  • 上次更新2023/11/2 13:48:35
查看原帖
关于今天T3求调
601764
kele7楼主2023/10/14 20:13

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int T,n,a[200005],lft[200005],r,l,ans;
int work1()
{
	int num=0;
	for(int i=1;i<r;i++)
	{
		num=max(num,lft[r]-lft[i]-a[i]);
	}
	return num;
}
int work2()
{
	int num=0;
	for(int i=n;i>l;i--)
	{
		num=max(num,lft[i-1]-lft[l-1]+a[i]);
	}
	return num;
}
signed main()
{
	cin>>T;
	while(T--)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
		}
		lft[0]=0;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			lft[i]=lft[i-1]+a[i];
		}
		r=0;
		for(int i=1;i<=n;i++)
		{
			if(a[i]<0)break;
			r=i;
		}
		l=n+1;
		for(int i=n;i>=1;i--)
		{
			if(a[i]>0)break;
			l=i;
		}
		ans=0;
		for(int i=r+1;i<l;i++)
		{
			ans+=abs(a[i]);
		}
		cout<<ans+work1()+work2()<<"\n";
	}
}

记录

2023/10/14 20:13
加载中...