Pagini recente » Cod sursa (job #2939659) | Cod sursa (job #3041111) | Cod sursa (job #2464257) | Cod sursa (job #1140903) | Cod sursa (job #2464573)
#include <fstream>
#include <algorithm>
using namespace std;
int v[500001], sp[500001];
ifstream cin ( "divk.in" );
ofstream cout ( "divk.out" );
int main() {
int n, k, a, b, i, p1, p2, cnt;
cin >> n >> k >> a >> b;
for ( i = 0; i < n; i++ ) {
cin >> v[i];
}
sp[0] = v[0];
for ( i = 1; i < n; i++ ) {
sp[i] = ( sp[i - 1] + v[i] ) % k;
}
p1 = 0;
p2 = a - 1;
cnt = 0;
sp[0] = 0;
while ( p2 < n ) {
while ( p2 < n && p2 - p1 + 1 <= b ) {
if ( sp[p2] == sp[p1] )
cnt++;
p2++;
}
if ( p2 < n )
p2--;
p1++;
while ( p2 - p1 + 1 >= a ) {
if ( sp[p2] == sp[p1] )
cnt++;
p1++;
}
p1--;
}
cout << cnt;
return 0;
}