Guest User

Untitled

a guest
Mar 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. solve (arr: ARRAY [INTEGER]): ARRAY [INTEGER]
  2. local
  3. ans, ans_l, ans_r, sum, min_sum, min_pos, i, cur: INTEGER_32
  4. any_non_negative: BOOLEAN
  5. do
  6. any_non_negative := false
  7. ans := arr [1]
  8. ans_l := 1
  9. ans_r := 1
  10. sum := 0
  11. min_sum := 0
  12. min_pos := 0
  13. from
  14. i := 1
  15. until
  16. i > arr.count
  17. loop
  18. if arr[i] >=0 then
  19. any_non_negative := true
  20. end
  21. sum := sum + arr [i]
  22. cur := sum - min_sum
  23. if cur > ans then
  24. ans := cur
  25. ans_l := min_pos + 1
  26. ans_r := i
  27. end
  28. if sum < min_sum then
  29. min_sum := sum
  30. min_pos := i
  31. end
  32. i := i + 1
  33. end
  34. if any_non_negative then
  35. Result := arr.subarray (ans_l, ans_r)
  36. else
  37. Result := create {ARRAY[INTEGER_32]}.make_empty
  38. end
  39. end
Add Comment
Please, Sign In to add comment