task4.cpp 691 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <iostream>
  2. #include <climits>
  3. int maxSubArraySum(int* arr, int size) {
  4. int maxSoFar = INT_MIN;
  5. int maxEndingHere = 0;
  6. for (int i = 0; i < size; ++i) {
  7. maxEndingHere = maxEndingHere + arr[i];
  8. if (maxSoFar < maxEndingHere) {
  9. maxSoFar = maxEndingHere;
  10. }
  11. if (maxEndingHere < 0) {
  12. maxEndingHere = 0;
  13. }
  14. }
  15. return maxSoFar;
  16. }
  17. int main() {
  18. int arr[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
  19. int size = sizeof(arr) / sizeof(arr[0]);
  20. int maxSum = maxSubArraySum(arr, size);
  21. std::cout << "Максимальная сумма подмассива: " << maxSum << std::endl;
  22. return 0;
  23. }