EDGE CASE DOES NOT PASS
int[] maximalAllowableSubarrays(int[] inputArray, int maxSum) {
int[] res = new int[inputArray.length];
for (int i = 0; i < inputArray.length; i++) {
int sum = 0;
for (int k = i; k < inputArray.length; k++) {
sum += inputArray[k];
}
if (sum <= maxSum) {
res[i] = inputArray.length - 1;
continue;
}
for (int j = inputArray.length - 2; j >= i; j--) {
sum -= inputArray[j + 1];
if (sum <= maxSum) {
res[i] = j;
break;
}
}
}
return res;
}