社区讨论

为什么我用int就过了

P2642最大双子段和参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mhj25dii
此快照首次捕获于
2025/11/03 19:29
4 个月前
此快照最后确认于
2025/11/03 19:29
4 个月前
查看原帖
code
CPP
#include<iostream>
#include<climits>
#define maxn 1000010
#define ll long long
using namespace std;

ll n,a[maxn],l[maxn],r[maxn],lans[maxn],rans[maxn],ans=INT_MIN;

void luogu(){
    for(int i=0;i<=n+1;i++){
        l[i]=INT_MIN;
        r[i]=INT_MIN;
        lans[i]=INT_MIN;
        rans[i]=INT_MIN;
    }
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n;
    luogu();
	for(ll i=1;i<=n;i++)cin>>a[i];
	for(ll i=1;i<=n;i++){
        l[i]=max(a[i],l[i-1]+a[i]);
        lans[i]=max(l[i],lans[i-1]);
    }
	for(ll i=n;i>=1;i--){
        r[i]=max(a[i],r[i+1]+a[i]);
        rans[i]=max(r[i],rans[i+1]);
    }
	for(ll i=2;i<n;i++)ans=max(ans,lans[i-1]+rans[i+1]);
	cout<<ans<<'\n';
	
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...