diff --git a/1508. Range Sum of Sorted Subarray Sums b/1508. Range Sum of Sorted Subarray Sums new file mode 100644 index 0000000..95f7e45 --- /dev/null +++ b/1508. Range Sum of Sorted Subarray Sums @@ -0,0 +1,27 @@ +class Solution { + const int mod = 1e9+7; +public: + int rangeSum(vector& nums, int n, int l, int r) { + vector arr; + + // Generate all subarray sums + for(int i = 0; i < n; i++) { + int sum = 0; + for(int j = i; j < n; j++) { + sum = (sum + nums[j]) % mod; + arr.push_back(sum); + } + } + + // Sort the subarray sums + sort(arr.begin(), arr.end()); + + // Compute the range sum + int sum = 0; + for(int i = l - 1; i < r; i++) { + sum = (sum + arr[i]) % mod; + } + + return sum; + } +};