fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.  
  7. vector<int>a={5,6,-1,4,-6,8,-14,6};
  8. int n=a.size();
  9. int curr=INT_MIN;
  10. int prev=INT_MIN;
  11.  
  12. vector<int>p3(n+1,INT_MIN),p4(n+1,INT_MIN);
  13. prev=max(a[0],0);
  14. p3[0]=prev;
  15. for(int i=1;i<n;i++){
  16. curr=max({prev+a[i],a[i],0});
  17. p3[i]=max(p3[i-1],curr);
  18. prev=curr;
  19. }
  20.  
  21. prev=max({a[n-1],0});
  22. p4[n-1]=prev;
  23. for(int i=n-2;i>=0;i--){
  24. curr=max({prev+a[i],a[i],0});
  25. p4[i]=max(p4[i+1],curr);
  26. prev=curr;
  27. }
  28.  
  29.  
  30. int ans=INT_MIN;
  31. ans=p4[0];
  32. for(int i=0;i<n;i++){
  33. ans=max(ans,p3[i]+p4[i+1]);
  34. }
  35. cout<<" ans "<<ans<<endl;
  36. return 0;
  37. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
 ans 22