3
int maxValue(int n, int index, int maxSum) {4
int lo = 1, hi = maxSum;9
int mid = lo + (hi - lo) / 2;11
long rs = 0, ls = 0, m = mid - 1;13
rs = m * (m + 1) / 2 - (m - r) * (m - r + 1) / 2; // if we have to calculate 9+8+7+6, sum14
// = 9*(9+1)/2 - (9-4)(9-4+1)/216
rs = m * (m + 1) / 2 + r - m; // if we encounter the case in which array right to index is17
// 3,2,1,1,1, sum = 3*(3+1)/2 + 5-219
ls = m * (m + 1) / 2 - (m - l) * (m - l + 1) / 2; // similar to above.21
ls = m * (m + 1) / 2 + l - m;26
res = mid, lo = mid + 1;