#include <vector>
using namespace std;
// Function to count subarrays having sum less than k
int countsubarray( vector< int > & arr, int k)
{
int n = arr.size ( ) ;
int start = 0 ;
int sum = 0 ;
int count = 0 ;
// Move end pointer
for ( int end = 0 ; end < n; end++ )
{
sum + = arr[ end] ;
// If sum becomes too large, shrink the window
while ( sum >= k)
{
sum - = arr[ start] ;
start++ ;
}
// Count valid subarrays ending at end
count + = ( end - start + 1 ) ;
}
return count;
}
I2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmN0aW9uIHRvIGNvdW50IHN1YmFycmF5cyBoYXZpbmcgc3VtIGxlc3MgdGhhbiBrCmludCBjb3VudHN1YmFycmF5KHZlY3RvcjxpbnQ+ICZhcnIsIGludCBrKQp7CiAgICBpbnQgbiA9IGFyci5zaXplKCk7CiAgICBpbnQgc3RhcnQgPSAwOwogICAgaW50IHN1bSA9IDA7CiAgICBpbnQgY291bnQgPSAwOwoKICAgIC8vIE1vdmUgZW5kIHBvaW50ZXIKICAgIGZvciAoaW50IGVuZCA9IDA7IGVuZCA8IG47IGVuZCsrKQogICAgewogICAgICAgIHN1bSArPSBhcnJbZW5kXTsKCiAgICAgICAgLy8gSWYgc3VtIGJlY29tZXMgdG9vIGxhcmdlLCBzaHJpbmsgdGhlIHdpbmRvdwogICAgICAgIHdoaWxlIChzdW0gPj0gaykKICAgICAgICB7CiAgICAgICAgICAgIHN1bSAtPSBhcnJbc3RhcnRdOwogICAgICAgICAgICBzdGFydCsrOwogICAgICAgIH0KCiAgICAgICAgLy8gQ291bnQgdmFsaWQgc3ViYXJyYXlzIGVuZGluZyBhdCBlbmQKICAgICAgICBjb3VudCArPSAoZW5kIC0gc3RhcnQgKyAxKTsKICAgIH0KCiAgICByZXR1cm4gY291bnQ7Cn0K