fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int maxSubarraySum(const vector<int>& b) {
  7. int n = b.size() - 1; // Adjust for 1-based indexing
  8. if (n == 0) return 0;
  9.  
  10. int T = 0; // Initialize T to 0, which will store the maximum sum subarray
  11. int prv = 0; // Initialize prv to 0, which will store the current maximum sum subarray ending at b[i]
  12.  
  13. for (int i = 1; i <= n; ++i) {
  14. int current = max(prv + b[i], b[i]);
  15. current = max(current, 0);
  16. prv = current;
  17. T = max(T, current);
  18. }
  19.  
  20. return T;
  21. }
  22.  
  23. int main() {
  24. int n;
  25. cin >> n;
  26.  
  27. vector<int> b(n + 1); // Adjust for 1-based indexing
  28. for (int i = 1; i <= n; ++i) {
  29. cin >> b[i];
  30. }
  31.  
  32. int result = maxSubarraySum(b);
  33. cout << "Maximum subarray sum is " << result << endl;
  34.  
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0.01s 5296KB
stdin
Standard input is empty
stdout
Maximum subarray sum is 0