fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. Scanner sc=new Scanner(System.in);
  14. int n=sc.nextInt();
  15. int a[]=new int[n+1];
  16.  
  17. for(int i=1;i<=n;i++)
  18. a[i]=sc.nextInt();
  19.  
  20. int prefix[]=new int[n+1];
  21. for(int i=1;i<=n;i++)
  22. prefix[i]=Math.max(a[i],a[i]+prefix[i-1]);
  23.  
  24.  
  25. int suffix[]=new int[n+1];
  26. suffix[n]=a[n];
  27.  
  28. int u[]=new int[n+1];
  29. u[n]=suffix[n];
  30. int suffixmax[]=new int[n+1];
  31. suffixmax[n]=a[n];
  32. for(int i=n-1;i>=1;i--)
  33. {
  34. if(a[i]<a[i+1])
  35. suffix[i]=suffix[i+1]+a[i];
  36. else
  37. suffix[i]=a[i];
  38.  
  39. u[i]=Math.max(a[i],suffix[i]);
  40.  
  41. suffixmax[i]=Math.max(u[i],suffixmax[i+1]);
  42. }
  43.  
  44. int ans=0;
  45.  
  46. for(int i=1;i<n;i++)
  47. {
  48. ans=Math.max(ans,prefix[i]+suffixmax[i+1]);
  49. }
  50. System.out.println(ans);
  51. }
  52. }
Success #stdin #stdout 0.18s 56592KB
stdin
7
6 3 4 9 17 -1 2
stdout
41