Pagini recente » Cod sursa (job #2806513) | Cod sursa (job #175206) | Cod sursa (job #2758276) | Cod sursa (job #2642173) | Cod sursa (job #2924697)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5e5;
ifstream fin( "divk.in" );
ofstream fout( "divk.out" );
map<int, int> rest;
int sp[MAXN+1];
int main() {
int n, k, a, b, i, x;
long long sum;
fin >> n >> k >> a >> b;
for( i = 1; i <= n; i++ ) {
fin >> x;
sp[i] = ( sp[i-1] + x ) % k;
}
sum = 0;
for( i = a; i <= n; i++ ) {
rest[sp[i-a]]++;
if( i - b >= 1 )
rest[sp[i-b]]--;
if( i - b == 1 )
rest[0]--;
sum += rest[sp[i]];
}
fout << sum;
return 0;
}