#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int numOfSubarrays( vector< int > & A, int K, int threshold) {
int i;
int res = 0 ;
int N = A.size ( ) ;
long long s = 0 ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
A[ i] - = threshold;
}
for ( i= ( 0 ) ; i< ( K) ; i++ ) {
s + = A[ i] ;
}
if ( s >= 0 ) {
res++ ;
}
for ( i= ( K) ; i< ( N) ; i++ ) {
s + = A[ i] - A[ i- K] ;
if ( s >= 0 ) {
res++ ;
}
}
return res;
}
}
;
// cLay varsion 20200214-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int numOfSubarrays(vector<int>& A, int K, int threshold) {
// int res = 0, N = A.size();
// ll s = 0;
// rep(i,N) A[i] -= threshold;
//
// rep(i,K) s += A[i];
// if(s >= 0) res++;
// rep(i,K,N){
// s += A[i] - A[i-K];
// if(s >= 0) res++;
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIGludCBudW1PZlN1YmFycmF5cyh2ZWN0b3I8aW50PiYgQSwgaW50IEssIGludCB0aHJlc2hvbGQpewogICAgaW50IGk7CiAgICBpbnQgcmVzID0gMDsKICAgIGludCBOID0gQS5zaXplKCk7CiAgICBsb25nIGxvbmcgcyA9IDA7CiAgICBmb3IoaT0oMCk7aTwoTik7aSsrKXsKICAgICAgQVtpXSAtPSB0aHJlc2hvbGQ7CiAgICB9CiAgICBmb3IoaT0oMCk7aTwoSyk7aSsrKXsKICAgICAgcyArPSBBW2ldOwogICAgfQogICAgaWYocyA+PSAwKXsKICAgICAgcmVzKys7CiAgICB9CiAgICBmb3IoaT0oSyk7aTwoTik7aSsrKXsKICAgICAgcyArPSBBW2ldIC0gQVtpLUtdOwogICAgICBpZihzID49IDApewogICAgICAgIHJlcysrOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDIwMDIxNC0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGludCBudW1PZlN1YmFycmF5cyh2ZWN0b3I8aW50PiYgQSwgaW50IEssIGludCB0aHJlc2hvbGQpIHsKLy8gICAgIGludCByZXMgPSAwLCBOID0gQS5zaXplKCk7Ci8vICAgICBsbCBzID0gMDsKLy8gICAgIHJlcChpLE4pIEFbaV0gLT0gdGhyZXNob2xkOwovLyAKLy8gICAgIHJlcChpLEspIHMgKz0gQVtpXTsKLy8gICAgIGlmKHMgPj0gMCkgcmVzKys7Ci8vICAgICByZXAoaSxLLE4pewovLyAgICAgICBzICs9IEFbaV0gLSBBW2ktS107Ci8vICAgICAgIGlmKHMgPj0gMCkgcmVzKys7Ci8vICAgICB9Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK