https://movingparts.dev/posts/maximum-subarray-problem/