有40分TLE,求助
查看原帖
有40分TLE,求助
95186
baen楼主2023/10/30 21:40
#include<bits/stdc++.h>
using namespace std;
int a[200005];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int N,i,j,right=1,sum1,sum2=0,ans=INT_MIN;
	cin>>N;
	for(i=1;i<=N;i++)
	cin>>a[i];
	a[i]=INT_MIN;
	sum1=a[1];
	while(right<=N)
	{
		i=right+1;
		sum2=0;
		for(;i<=N+1;i++)
		{
			sum2+=a[i];
			if(sum2+sum1<=0)
			{
				if(ans<sum1)
				ans=sum1;
				right++;
				sum1=a[right];
				break;
			}
			else if(sum2>=0)
			{
				if(a[i+1]>=0)
				continue;
				else
				{
					right=i;
					sum1+=sum2;
					sum2=0;
				}
			}
		}
		if(i==N+1)
		break;
	}
	cout<<ans;
	return 0;
}
2023/10/30 21:40
加载中...