比赛 板子大赛 评测结果 AAAAAAAAAA
题目名称 单子序列最大和 最终得分 100
用户昵称 IMZ 运行时间 0.065 s
代码语言 C++ 内存使用 3.67 MiB
提交时间 2025-01-22 09:26:00
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int a[1000010];
int dp[1000010];
int main(){
    freopen("subq.in","r",stdin);
    freopen("subq.out","w",stdout);
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    dp[0]=-1e9;
    int mx=-1e9,op;
    for(int i=1;i<=n;i++){
        dp[i]=a[i];
        dp[i]=max(dp[i],dp[i-1]+a[i]);
        if(dp[i]>mx){
            mx=dp[i];
            op=i;
        }
        a[i]=a[i-1]+a[i];
    }
    for(int i=1;i<=op;i++){
        if(a[op]-a[i-1]==mx){
            printf("%d\n%d\n%d",i,op,mx);
            return 0;
        }
    }
    return 0;
}