import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main
(String[] args
) { int[] arr = new int[]{1, 1, 1, 4, 5, 6};
int k = 12;
int count = 0;
int sum = 0;
// Two pointers: 'left' and 'right'
int left = 0;
for (int right = 0; right < arr.length; right++) {
// Expand the window by adding the element at 'right'
sum += arr[right];
// Shrink the window from the left if the sum exceeds k
while (sum > k && left <= right) {
sum -= arr[left];
left++;
}
// If the window [left...right] is valid (sum <= k),
// then all subarrays ending at 'right' and starting from 'left' up to 'right' are also valid.
count += (right - left + 1);
}
System.
out.
println("Total subarrays with sum <= k is " + count
); }
}
CgppbXBvcnQgamF2YS51dGlsLio7CmltcG9ydCBqYXZhLmxhbmcuKjsKaW1wb3J0IGphdmEuaW8uKjsKCgpjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBpbnRbXSBhcnIgPSBuZXcgaW50W117MSwgMSwgMSwgNCwgNSwgNn07CiAgICAgICAgaW50IGsgPSAxMjsKICAgICAgICBpbnQgY291bnQgPSAwOwogICAgICAgIGludCBzdW0gPSAwOwogICAgICAgIAogICAgICAgIC8vIFR3byBwb2ludGVyczogJ2xlZnQnIGFuZCAncmlnaHQnCiAgICAgICAgaW50IGxlZnQgPSAwOwoKICAgICAgICBmb3IgKGludCByaWdodCA9IDA7IHJpZ2h0IDwgYXJyLmxlbmd0aDsgcmlnaHQrKykgewogICAgICAgICAgICAvLyBFeHBhbmQgdGhlIHdpbmRvdyBieSBhZGRpbmcgdGhlIGVsZW1lbnQgYXQgJ3JpZ2h0JwogICAgICAgICAgICBzdW0gKz0gYXJyW3JpZ2h0XTsKCiAgICAgICAgICAgIC8vIFNocmluayB0aGUgd2luZG93IGZyb20gdGhlIGxlZnQgaWYgdGhlIHN1bSBleGNlZWRzIGsKICAgICAgICAgICAgd2hpbGUgKHN1bSA+IGsgJiYgbGVmdCA8PSByaWdodCkgewogICAgICAgICAgICAgICAgc3VtIC09IGFycltsZWZ0XTsKICAgICAgICAgICAgICAgIGxlZnQrKzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gSWYgdGhlIHdpbmRvdyBbbGVmdC4uLnJpZ2h0XSBpcyB2YWxpZCAoc3VtIDw9IGspLAogICAgICAgICAgICAvLyB0aGVuIGFsbCBzdWJhcnJheXMgZW5kaW5nIGF0ICdyaWdodCcgYW5kIHN0YXJ0aW5nIGZyb20gJ2xlZnQnIHVwIHRvICdyaWdodCcgYXJlIGFsc28gdmFsaWQuCiAgICAgICAgICAgIGNvdW50ICs9IChyaWdodCAtIGxlZnQgKyAxKTsKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgc3ViYXJyYXlzIHdpdGggc3VtIDw9IGsgaXMgIiArIGNvdW50KTsKICAgIH0KfQo=