1var stoneGameVIII = function (S) {2let n = S.length,3prefix = [0],4dp = [...Array(n)];5for (let i = 0; i < n; i++) prefix.push(prefix[prefix.length - 1] + S[i]);6let bestRight = prefix[n],7bestCurrent;8for (let i = n - 2; i >= 0; i--)9(bestCurrent = bestRight),10//update what you re going to use in the future11(bestRight = Math.max(bestRight, prefix[i + 1] - bestCurrent));12return bestCurrent;13};