import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
Solution solution = new Solution();
int[] nums1 = {2, 1, 4, 3, 5};
long k1 = 10;
System.
out.
println("Test Case 1 Result: " + solution.
countSubarrays(nums1, k1
));
int[] nums2 = {100, 200, 300};
long k2 = 5;
System.
out.
println("Test Case 2 Result: " + solution.
countSubarrays(nums2, k2
)); }
}
class Solution {
public long countSubarrays(int[] nums, long k) {
int left = 0;
long currentSum = 0;
long count = 0;
for (int right = 0; right < nums.length; right++) {
// Expand the window by adding the current element
currentSum += nums[right];
// Shrink the window from the left while the score is invalid
while (currentSum * (right - left + 1) >= k) {
currentSum -= nums[left];
left++;
}
// Add the number of valid subarrays ending at 'right'
count += (right - left + 1);
}
return count;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgoKY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewogICAgICAgIFNvbHV0aW9uIHNvbHV0aW9uID0gbmV3IFNvbHV0aW9uKCk7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgaW50W10gbnVtczEgPSB7MiwgMSwgNCwgMywgNX07CiAgICAgICAgbG9uZyBrMSA9IDEwOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdCBDYXNlIDEgUmVzdWx0OiAiICsgc29sdXRpb24uY291bnRTdWJhcnJheXMobnVtczEsIGsxKSk7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgaW50W10gbnVtczIgPSB7MTAwLCAyMDAsIDMwMH07CiAgICAgICAgbG9uZyBrMiA9IDU7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUZXN0IENhc2UgMiBSZXN1bHQ6ICIgKyBzb2x1dGlvbi5jb3VudFN1YmFycmF5cyhudW1zMiwgazIpKTsKICAgIH0KfQoKY2xhc3MgU29sdXRpb24gewogICAgcHVibGljIGxvbmcgY291bnRTdWJhcnJheXMoaW50W10gbnVtcywgbG9uZyBrKSB7CiAgICAgICAgaW50IGxlZnQgPSAwOwogICAgICAgIGxvbmcgY3VycmVudFN1bSA9IDA7CiAgICAgICAgbG9uZyBjb3VudCA9IDA7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgcmlnaHQgPSAwOyByaWdodCA8IG51bXMubGVuZ3RoOyByaWdodCsrKSB7CiAgICAgICAgICAgIC8vIEV4cGFuZCB0aGUgd2luZG93IGJ5IGFkZGluZyB0aGUgY3VycmVudCBlbGVtZW50CiAgICAgICAgICAgIGN1cnJlbnRTdW0gKz0gbnVtc1tyaWdodF07CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTaHJpbmsgdGhlIHdpbmRvdyBmcm9tIHRoZSBsZWZ0IHdoaWxlIHRoZSBzY29yZSBpcyBpbnZhbGlkCiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50U3VtICogKHJpZ2h0IC0gbGVmdCArIDEpID49IGspIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRTdW0gLT0gbnVtc1tsZWZ0XTsKICAgICAgICAgICAgICAgIGxlZnQrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQWRkIHRoZSBudW1iZXIgb2YgdmFsaWQgc3ViYXJyYXlzIGVuZGluZyBhdCAncmlnaHQnCiAgICAgICAgICAgIGNvdW50ICs9IChyaWdodCAtIGxlZnQgKyAxKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIGNvdW50OwogICAgfQp9Cg==