听说灌水区DALAO多qwq
  • 板块灌水区
  • 楼主fanxing1124
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/7/18 18:34
  • 上次更新2023/11/3 09:03:56
查看原帖
听说灌水区DALAO多qwq
778970
fanxing1124楼主2023/7/18 18:34

我做这道题 的时候TLE 了

下面是代码,看看可以挽救吗qwq

#include<bits/stdc++.h>
using namespace std;
int s[500010],MAX,a[500010],n,sum; 
long long ans(int l,int r)
{
	return s[r]-s[l-1];
}
void dfs(int l,int r,int sum)
{
	MAX=max(sum,MAX);
	if(l==r)return;
	int b1=0,b2=0;
	int i=l,j=r;
	while(a[++i]>0&&b1==1&&i<=r)
	{
		if(a[i]<0)b1=1;
	}
	dfs(i,r,ans(i,r));
	while(a[--j]>0&&b2==1&&l<=j)
	{
		if(a[i]<0)b2=1;
	}
	dfs(l,j,ans(l,j));
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
		sum+=a[i];
		s[i]=s[i-1]+a[i];
	}
	dfs(1,n,sum);
	cout<<MAX<<endl;
	return 0;
}
2023/7/18 18:34
加载中...