import java.util.*;
public class Main {
public static void main
(String[] args
) { int[] nums = {1, 2, 3};
int k = 4;
System.
out.
println("Count of subarrays with sum >= K: " + countSubarrays
(nums, k
)); }
public static long countSubarrays(int[] nums, int k) {
int n = nums.length;
long totalSubarrays = (long) n * (n + 1) / 2;
if (k <= 0) return totalSubarrays;
// Single sliding window loop to directly count subarrays with sum <= k - 1
long countLessThanK = 0;
long currentSum = 0;
int left = 0;
int target = k - 1;
for (int right = 0; right < n; right++) {
currentSum += nums[right];
while (currentSum > target && left <= right) {
currentSum -= nums[left];
left++;
}
countLessThanK += (right - left + 1);
}
return totalSubarrays - countLessThanK;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludFtdIG51bXMgPSB7MSwgMiwgM307CiAgICAgICAgaW50IGsgPSA0OwogICAgICAgIAogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bnQgb2Ygc3ViYXJyYXlzIHdpdGggc3VtID49IEs6ICIgKyBjb3VudFN1YmFycmF5cyhudW1zLCBrKSk7CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgbG9uZyBjb3VudFN1YmFycmF5cyhpbnRbXSBudW1zLCBpbnQgaykgewogICAgICAgIGludCBuID0gbnVtcy5sZW5ndGg7CiAgICAgICAgbG9uZyB0b3RhbFN1YmFycmF5cyA9IChsb25nKSBuICogKG4gKyAxKSAvIDI7CiAgICAgICAgaWYgKGsgPD0gMCkgcmV0dXJuIHRvdGFsU3ViYXJyYXlzOyAKICAgICAgICAKICAgICAgICAvLyBTaW5nbGUgc2xpZGluZyB3aW5kb3cgbG9vcCB0byBkaXJlY3RseSBjb3VudCBzdWJhcnJheXMgd2l0aCBzdW0gPD0gayAtIDEKICAgICAgICBsb25nIGNvdW50TGVzc1RoYW5LID0gMDsKICAgICAgICBsb25nIGN1cnJlbnRTdW0gPSAwOwogICAgICAgIGludCBsZWZ0ID0gMDsKICAgICAgICBpbnQgdGFyZ2V0ID0gayAtIDE7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgcmlnaHQgPSAwOyByaWdodCA8IG47IHJpZ2h0KyspIHsKICAgICAgICAgICAgY3VycmVudFN1bSArPSBudW1zW3JpZ2h0XTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50U3VtID4gdGFyZ2V0ICYmIGxlZnQgPD0gcmlnaHQpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRTdW0gLT0gbnVtc1tsZWZ0XTsKICAgICAgICAgICAgICAgIGxlZnQrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgY291bnRMZXNzVGhhbksgKz0gKHJpZ2h0IC0gbGVmdCArIDEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gdG90YWxTdWJhcnJheXMgLSBjb3VudExlc3NUaGFuSzsKICAgIH0KfQo=