1 solutions
-
0
C++ :
#include<bits/stdc++.h> #define int long long using namespace std; int f1[200005],f2[2000005],a[200005]; signed main(){ int n; cin>>n; for (int i=1;i<=n;i++)cin>>a[i]; int sum=0,maxn=-1e9; for (int i=1;i<=n;i++) { sum+=a[i]; maxn=max(maxn,sum); f1[i]=maxn; } sum=0,maxn=-1e9; for (int i=n;i>=1;i--) { sum+=a[i]; maxn=max(maxn,sum); f2[i]=maxn; } int cnt=-1e9; // 第一种情况的最大值 sum=0; for (int i=1;i<=n;i++){ if (sum<0)sum=a[i]; else sum+=a[i]; cnt=max(cnt,sum); } int cnt2=-1e9; // 第二种情况的最大值 for (int i=1;i<=n;++i) cnt2=max(max(cnt2,f1[i]+f2[i+1]),f1[i-1]+f2[i]); cout<<max(cnt,cnt2); return 0; }
- 1
Information
- ID
- 108
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By