4
int maxTotalFruits(vector<vector<int>> &fruits, int startPos, int k) {6
startPos++; // incremented positions by one to make calculations easier.7
vector<int> prefix_sum(MX);8
for (auto &it : fruits) prefix_sum[it[0] + 1] = it[1];9
for (i = 1; i < MX; i++) prefix_sum[i] += prefix_sum[i - 1];11
for (r = startPos; r < MX && r <= startPos + k; r++) {12
l = min(startPos, startPos - (k - 2 * (r - startPos)));14
ans = max(ans, prefix_sum[r] - prefix_sum[l - 1]);17
for (l = startPos; l > 0 && l >= startPos - k; l--) {18
r = max(startPos, startPos + (k - 2 * (startPos - l)));20
ans = max(ans, prefix_sum[r] - prefix_sum[l - 1]);