1class Solution {2private static int mod = (int) 1e9 + 7;34public int rangeSum(int[] nums, int n, int left, int right) {56PriorityQueue<int[]> pq = new PriorityQueue<>((n1, n2) -> n1[1] - n2[1]);78for (int i = 0; i < n; i++) pq.add(new int[] {i, nums[i]});910int ans = 0;11for (int i = 1; i <= right; i++) {12int[] k = pq.remove();13if (i >= left) {14ans = (ans + k[1]) % mod;15}16if (k[0] + 1 < n) {17pq.add(new int[] {k[0] + 1, k[1] + nums[k[0] + 1]});18}19}20return ans;21}22}