rangeSum<T extends num> function
Returns the sum from index i to j using a prefix sum list.
Uses the formula: sum(i..j) = prefix[j] - prefix[i-1]
Throws if indices are out of bounds.
Time Complexity: O(1)
Implementation
T rangeSum<T extends num>(List<T> prefix, int i, int j) {
if (i < 0 || j >= prefix.length || i > j) {
throw RangeError(
'Invalid indices: i=$i, j=$j for prefix of length ${prefix.length}',
);
}
if (i == 0) return prefix[j];
return (prefix[j] - prefix[i - 1]) as T;
}