#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int N;
long long sum[ 100001 ] ;
class Solution{
public :
int dietPlanPerformance( vector< int > & A, int K, int L, int U) {
int i, j, res= 0 ;
N = A.size ( ) ;
sum[ 0 ] = 0 ;
for ( i= 0 ; i< ( N) ; i++ ) {
sum[ i+ 1 ] = sum[ i] + A[ i] ;
}
for ( i= ( K) ; i< ( N+ 1 ) ; i++ ) {
j = sum[ i] - sum[ i- K] ;
if ( j < L) {
res-- ;
}
if ( j > U) {
res++ ;
}
}
return res;
}
}
;
// cLay varsion 20190830-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int N;
// ll sum[100001];
//
// class Solution {
// public:
// int dietPlanPerformance(vector<int>& A, int K, int L, int U) {
// int i, j, res = 0;
// N = A.size();
//
// sum[0] = 0;
// rep(i,N) sum[i+1] = sum[i] + A[i];
//
// rep(i,K,N+1){
// j = sum[i] - sum[i-K];
// if(j < L) res--;
// if(j > U) res++;
// }
//
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IE47CmxvbmcgbG9uZyBzdW1bMTAwMDAxXTsKY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIGludCBkaWV0UGxhblBlcmZvcm1hbmNlKHZlY3RvcjxpbnQ+JiBBLCBpbnQgSywgaW50IEwsIGludCBVKXsKICAgIGludCBpLCBqLCByZXM9MDsKICAgIE4gPSBBLnNpemUoKTsKICAgIHN1bVswXSA9IDA7CiAgICBmb3IoaT0wO2k8KE4pO2krKyl7CiAgICAgIHN1bVtpKzFdID0gc3VtW2ldICsgQVtpXTsKICAgIH0KICAgIGZvcihpPShLKTtpPChOKzEpO2krKyl7CiAgICAgIGogPSBzdW1baV0gLSBzdW1baS1LXTsKICAgICAgaWYoaiA8IEwpewogICAgICAgIHJlcy0tOwogICAgICB9CiAgICAgIGlmKGogPiBVKXsKICAgICAgICByZXMrKzsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHJlczsKICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAxOTA4MzAtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBpbnQgTjsKLy8gbGwgc3VtWzEwMDAwMV07Ci8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBpbnQgZGlldFBsYW5QZXJmb3JtYW5jZSh2ZWN0b3I8aW50PiYgQSwgaW50IEssIGludCBMLCBpbnQgVSkgewovLyAgICAgaW50IGksIGosIHJlcyA9IDA7Ci8vICAgICBOID0gQS5zaXplKCk7Ci8vIAovLyAgICAgc3VtWzBdID0gMDsKLy8gICAgIHJlcChpLE4pIHN1bVtpKzFdID0gc3VtW2ldICsgQVtpXTsKLy8gCi8vICAgICByZXAoaSxLLE4rMSl7Ci8vICAgICAgIGogPSBzdW1baV0gLSBzdW1baS1LXTsKLy8gICAgICAgaWYoaiA8IEwpIHJlcy0tOwovLyAgICAgICBpZihqID4gVSkgcmVzKys7Ci8vICAgICB9Ci8vIAovLyAgICAgcmV0dXJuIHJlczsKLy8gICB9Ci8vIH07Cg==