1 条题解

  • 3
    @ 2026-7-14 17:18:15

    #include <bits/stdc++.h> #define int long long #ifndef ONLINE_JUDGE #define DEBUG #endif const int N = 1e7+10; using namespace std;

    int a[N], pfx[N], pmin[N], pmax[N];

    signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);

    memset(pmin, 0x3f, sizeof pmin);
    memset(pmax, 0xcf, sizeof pmax);
    
    int n;cin>>n;
    
    for(int i=1;i<=n;i++) {
    	cin>>a[i];
    	pfx[i] = pfx[i-1] + a[i];
    	pmin[i] = min(pmin[i-1], pfx[i]);
    	pmax[i] = max(pmax[i-1], pfx[i]);
    }
    
    pmin[0] = pmax[0] = 0;
    
    int situation1 = -1e14, situation2 = -1e14;
    
    for(int r=2;r<=n;r++) {
    	situation1 = max(situation1, pfx[r] - pmin[r-1]);
    }
    
    for(int r=2;r<=n;r++) {
    	int tmp = pfx[r] - pmax[r-1];
    	situation2 = max(situation2, pfx[n] - tmp);
    }
    
    cout<<max(situation1, situation2);
    
    return 0;
    

    }

    信息

    ID
    5972
    时间
    1000ms
    内存
    500MiB
    难度
    5
    标签
    递交数
    323
    已通过
    88
    上传者