Advertisement
tawhidkuet04

Untitled

May 29th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. typedef long long int ll;
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int arr[100010];
  8. int lr[100010];
  9. int rl[100010];
  10. int t;
  11. scanf("%d",&t);
  12. while(t--)
  13. {
  14. ll sum1=-1000000010,sum2=-1000000010,mx1=-1000000010,mx2=-1000000010;
  15. ll n,x=0,y=0;
  16. cin>>n;
  17. for(int i=0; i<n; i++)scanf("%d",&arr[i]);
  18. //sum1=arr[0];sum2=arr[n-1];
  19. for(int i=0; i<n; i++)
  20. {
  21. lr[x++]=sum1;
  22. if(sum1<0)sum1=arr[i];
  23. else sum1+=arr[i];
  24. mx1=max(mx1,sum1);
  25.  
  26. }
  27. y=n-1;
  28. for(int i=n-1; i>=0; i--)
  29. {
  30.  
  31. rl[y--]=sum2;
  32. if(sum2<0)sum2=arr[i];
  33. else sum2+=arr[i];
  34. mx2=max(mx2,sum2);
  35.  
  36. }
  37. ll mx=-1000000010;
  38. // for(int i=0;i<n;i++)cout<<lr[i]<<" ";
  39. // cout<<endl;
  40. // for(int i=0;i<n;i++)cout<<rl[i]<<" ";
  41. for(int i=0; i<n; i++)
  42. {
  43. ll p=lr[i]+rl[i];
  44. ll x=lr[i];
  45. ll y=rl[i];
  46. mx=max(max(mx,p),max(x,y));
  47. }
  48. ll ans=max(max(mx1,mx2),mx);
  49. cout<<ans<<endl;
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement