求助WA40
查看原帖
求助WA40
335094
Lucifero楼主2020/12/31 19:10
#include <bits/stdc++.h>
#define inf 0x7fffffff
#define m 2
using namespace std;
int n;
long long a[200001],f[2][200001],maxa[200001],maxf,ans(-inf);
int main()
{
	//环状最大两段子段和
	int i,j;
	scanf("%d",&n);
	for(i=1;i<=n;i++) scanf("%lld",&a[i]);
	for(i=1;i<=m;i++)
	{
		f[i&1][i-1]=maxf=-inf;
		for(j=i;j<=n;j++)
		{
			f[i&1][j]=max(f[i&1][j-1]+a[j],maxa[j-1]+a[j]);
			maxa[j-1]=maxf;
			maxf=max(f[i&1][j],maxf);
		}
	}
	for(i=m;i<=n;i++) ans=max(ans,f[m&1][i]);
	printf("%lld",ans);
}
2020/12/31 19:10
加载中...