fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int n;
  7. cin>>n;
  8. int tot=0;
  9. vector<int> vec(n);
  10. for(int i=0;i<n;++i){
  11. cin>>vec[i];
  12. tot+=vec[i];
  13. vec[i]=-vec[i];
  14. }
  15. vector<int> pre(n,0),suff(n),maxSuff(n);
  16. for(int i=1;i<=n-3;++i){
  17. pre[i]=max(vec[i],pre[i-1]+vec[i]);
  18. }
  19. suff[n-1]=vec[n-1];
  20. maxSuff[n-1]=vec[n-1];
  21. for(int i=n-2;i>=0;--i){
  22. suff[i]=suff[i+1]+vec[i];
  23. maxSuff[i]=max(maxSuff[i+1],suff[i]);
  24. }
  25. int maxS2S4=INT_MIN;
  26. for(int i=1;i<=n-3;++i){
  27. maxS2S4=max(maxS2S4,pre[i]+maxSuff[i+2]);
  28. }
  29. int ans = tot+(2*maxS2S4);
  30. cout<<ans<<endl;
  31. return 0;
  32. }
Success #stdin #stdout 0.01s 5324KB
stdin
6
5 -2 3 -100 4 5
stdout
105