Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int Solution::numRange(vector<int> &A, int B, int C) {
- int ans=0,size = A.size();
- vector<long long> prefixSum(size, 0);
- prefixSum[0] = A[0];
- for(int i = 1; i < size; i++) prefixSum[i]= prefixSum[i-1] + A[i];
- int l = 0, r = 0;
- long long value = 0;
- for(int i=0; i < size; i++) {
- value = (i == 0) ? 0 : prefixSum[i-1];
- while(l < size and prefixSum[l] < (value + 1ll*B)) l++;
- while(r < size and prefixSum[r] <= (value + 1ll*C)) r++;
- ans += r - l;
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement