A partition algorithm
Since you find it interesting to solve, I do not want to completely
spoil it too much  for you. So here is a big hint to solve it in linear time.

You start with two indices $i$ and $j$ which are the first and last indices of
central segment.

Initially you set $i=0$ and $j=n$. And you compute the 3 sums in
$s_1$, $s_2$ and $s_3$. So initially $s_1=s_3=0$.

Then you progressively increase $i$ and decrease $j$, by variations of
1, keeping $s_1$ and $s_3$ about the same value (by doing the change on the
smallest sum $s_1$ or $s_3$), until one becomes bigger than $s_2$.
Each increment or decrement  takes constant time (adding or
substracting the value of an element to two of the sums, and doing a
few comparisons).

When one of $s_1$ and $s_3$ becomes larger than $s_2$, say for example
$s_1$. Then you have $s_1\geq s_2 &gt; s_3$.

Then you know that the right value for $i$ is either the current value
or the previous value. Typically it is the previous value of i, if
$s_1$ has become greater that the previous value of $s_2$. But things
are a bit more subtle. So you note this value of $s_1$ as $m_1$, a
possibility for the maximum, and then try to see if you could have
achieved a lower value for the maximum with the previous value of $i$
and $s_1$,
just before the last increase. So you revert $i$ to that previous
value, and you start to decrease $j$ to get the lowest possible maximum for
$s_2$ and $s_3$ without touching $i$ (that is easy, and recall that $s_1$ remains lower
than both others sums). Let $m_{2,3}$ be the lowest maximum found. Now, if
$m_{2,3}$ is greater than $m_1$, then the answer is $m_1$, else the
answer is $m_{2,3}$.

And you must consider the symmetrical case when $s_3$ is the first to
exceed $s_2$.