3
int rangeSum(vector<int> &nums, int n, int left, int right) {4
const int m = 1e9 + 7; // To return ans % m5
int ans = 0; // Final Answer6
int k = 1; // For 1 based indexing7
int size = (n * (n + 1)) / 2; // We can form n(n+1)/2 subarrays for an array of size n8
vector<int> subsum(size + 1);9
for (int i = 0; i < n; i++) {11
for (int j = i; j < n; j++) {12
sum += nums[j]; // Sum of the subarray13
subsum[k++] = sum; // Inserting the prefix sum at the index16
sort(subsum.begin(), subsum.end()); // Sorting the array17
for (int i = left; i <= right; i++) {18
ans = (ans + subsum[i]) % m; // ans modulo 10^9 +7