Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define int long long
- using namespace std;
- const int N=1000000+10;
- int n,arr[N],ans=-9000000000000000000,lmx[N],rmx[N],ldp[N],rdp[N];
- signed main() {
- cin>>n;
- for (int i=1; i<=n; i++) {
- cin>>arr[i];
- }
- lmx[1]=ldp[1]=arr[1];
- rmx[n]=rdp[n]=arr[n];
- for (int i=2; i<=n; i++) {
- ldp[i]=max(ldp[i-1]+arr[i], arr[i]);
- lmx[i]=max(lmx[i-1], ldp[i]);
- }
- for (int i=n-1; i>0; i--) {
- rdp[i]=max(rdp[i+1]+arr[i], arr[i]);
- rmx[i]=max(rdp[i+1], rdp[i]);
- }
- for (int i=2; i<n; i++) {
- ans=max(ans, lmx[i-1]+rmx[i+1]);
- }
- cout<<ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement