fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4. ll kadane(ll a[],int n)
  5. {
  6. ll sumsofar=0,sumhere=0;
  7. for(int i=1;i<=n;i++)
  8. {
  9. sumhere=sumhere+a[i];
  10. if(sumhere<0)
  11. sumhere=0;
  12. if(sumhere>sumsofar)
  13. sumsofar=sumhere;
  14. }
  15. return sumsofar;
  16. }
  17. int main() {
  18. // your code goes here
  19. ios_base::sync_with_stdio(false);cin.tie(0);
  20. int t;
  21. cin>>t;
  22. while(t--)
  23. {
  24. int n;
  25. cin>>n;
  26. ll a[n+1],maxx=-1000009,dp[1000009]={0},minn=100009;
  27. for(int i=1;i<=n;i++)
  28. {
  29. cin>>a[i];
  30. minn=min(a[i],minn);
  31. }
  32. maxx=min(max((ll)kadane(a,n),(ll)0),(ll)minn);
  33. dp[1]=max((long long int)0,a[1]);
  34. for(int i=2;i<=n;i++)
  35. dp[i]=max(dp[i-1],dp[i-1]+a[i]);
  36. cout<<maxx<<" "<<dp[n]<<endl;
  37. }
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 10968KB
stdin
6
1
1
6
-1 -2 -3 -4 -5 -6
2
1 -2
3
1 2 3
1
-10
6
1 -1 -1 -1 -1 5
stdout
1 1
-6 0
-2 1
1 6
-10 0
-1 6